HCL Compass Rest API の活用

2021/9/23 - 読み終える時間: 18 分

HCL Compass Rest APIs In Action の翻訳版です。


HCL Compass Rest API の活用

2021年9月20日

著者: Pradeesh S P / Technical Specialist, HCL Software

画像の説明

はじめに

この記事では、HCL Compass 2.0.2バージョンで提供されるRESTFULサービスについて説明します。HCL Compassでは、ウェブやデスクトップ・インターフェースの他に、Perl APIやJava Native Interfaceを使用することができます。これらの2つのオプションは、複雑で柔軟性に欠けているため、Compassを中心としたアプリケーションや統合の構築が難しく、時間がかかります。

HCL Compass REST APIは、開発者がHTTPベースのREST APIを使用してHCL Compassと対話することを可能にします。REST APIは、レコードの表示や修正、クエリの作成と編集、テキスト検索など、HCL Compassの多くの機能を実行するために使用できます。REST APIの機能は、コンポーネントとしてHCL Compassのインストールに含まれています。これは、Apache Tomcatインスタンス上に展開され、CQwebサービスから独立して実行されます。一度インストールすれば、あとはサービスを起動するだけで使い始めることができます。このブログでは、REST APIを利用してHCL Compassのデータと対話するPythonスクリプトを開発します。このスクリプトを作成しながら、一般的に使用されているRESTAPIのいくつかを紹介します。


この記事の内容

この記事は、プログラミングや、特定のタスクを実現するためのコードを提供するものではありません。単に、Compassデータと対話するためにREST APIを実用的な文脈で使用する方法を紹介するものです。もちろん、Pythonスクリプトを書くには、関数を使うなど、もっと簡単で効率的な方法があります。データ操作のコードの一部はスニペットに含まれておらず、ほとんどがREST APIと対話するためのリクエストモジュールの使い方を扱っています。


このスクリプトの役割

スクリプトを実行すると、システムで利用可能なリポジトリのリストを表示します。 パラメータとしてユーザー名、パスワード、データベースを入力することで、認証するリポジトリをリストから選ぶことができます。 選択したリポジトリに関連するデータベースを一覧表示します。 ユーザーにデータベースの提供を求め、そのユーザーに割り当てられたレコードを表示するためのクエリを構築する。 クエリを実行して、結果セットを表示します。 クエリを削除します。 REST サーバーからログアウトします。


このスクリプトで使用されるAPI

Repos API - Schema Repositories のリストを取得します。 Authenticate API - CCM REST サーバーへの認証を行います。 Databases API - スキーマリポジトリに関連付けられたデータベースを一覧表示する。 Folders API - クエリを作成する親フォルダーをリストアップする。 QueryDefs API - クエリ定義を作成する。 ResultSets API - クエリ定義を実行して、結果セットを構築します。 ResultSet API - 以前に実行された Query Definition の単一ページを取得します。 QueryDef API - クエリ定義を削除するためのものです。 Authenticate API - CCM Rest Server からログオフする。

では、これらのAPIを詳細に確認しながら、スクリプトを作成していきましょう。


1. スキーマリポジトリのリストの取得

最初のタスクは、ユーザーがスキーマリポジトリを選択できるように、スキーマリポジトリのリストを取得することです。これには、REPOS API、特にエンドポイントである/ccmweb/rest/repos を使用します。この目的のためには、GET HTTPリクエストを使用する必要があります。このデモでは、Python Requests モジュールを使用してREST APIスクリプトを作成します。そのためには、スクリプトにモジュールをインポートする必要があります。そして、request.get()関数を使用して、このAPIリクエストを送信します。request.get関数は、リポジトリのエンドポイントをURLとして受け取り、ヘッダを引数として渡します。この特定のAPIでは、期待されるヘッダーは次のとおりです。

'Content-Type': "application/json"

ヘッダー情報は headers という変数に保存され、URL は repo_endpoint という変数に保存されます。これは、Rest APIのリクエストを行うために、このスクリプト全体でrequestモジュールにパラメータを渡すための、標準的なテンプレートになります。

cont_type = “application/json”

headers={‘Content-Type’: cont_type}

repo_endpoint = “https://servername:8190/ccmweb/rest/repos

response = requests.get(

repo_endpoint,

headers=headers

)

上記のコードは、システムで利用可能なリポジトリのリストを取得します。


2. CCM RESTサーバーへの認証

システムでリポジトリが利用できるようになり、ユーザーがログインするリポジトリを選択できるようになったので、認証を行う必要があります。REST サーバーへの認証には、/ccmweb/rest/authenticate をエンドポイントとする Authenticate API を使用します。使用するHTTPリクエストはPOSTです。まず、ユーザーにユーザー名、パスワード、リポジトリ名、ログインしたいデータベースを入力してもらいます。以前のREPOS APIとは異なり、Authenticate APIでは、上記の情報をJSON形式でボディに送信する必要があります。ヘッダーとURLの他に、今回はボディデータもrequests.postメソッドで提供しなければなりません。また、リクエストが何らかの例外やエラーメッセージを発生させたかどうかを知る必要があり、そのために raise_for_status() メソッドを使用します。すべてがうまくいけば、このリクエストは認証トークンをJSON形式で出力します。これは、Compassのデータを取得または変更するための今後のAPIリクエストに使用する必要があります。このデータを操作してトークンを取得するためには、このJSON出力を処理してPythonの辞書データ構造に変換する必要があります。そのために、.json()メソッドを使用します。Json.dumps関数は、Pythonで処理できるようにjsonデータを文字列に変換します。前回のAPIコールと同じヘッダーを今回も渡していることに注目してください。

期待されるヘッダーは、「Content-Type」。"application/json"

eponame = input(“\nEnter Repository Name : “)

auth_url = “https://servername:8190/ccmweb/rest/authenticate

username = input(“\nEnter your username : “)

password = input(“\nEnter your password : “)

db1name = input(“\nEnter db name : “)

body_data={“username”:username,

“password”:password,

“repo”:reponame,

“db”:db1name

}

auth_response = requests.post(auth_url,headers=headers,data=json.dumps(body_data))

auth_response.raise_for_status()

auth_data=auth_response.json()


3. スキーマ・リポジトリに関連するデータベースの一覧表示

スキーマ・リポジトリに関連するデータベースの一覧を表示するには、エンドポイントがccmweb/rest/repos/repository name/databasesDatabases APIを使用します。HTTPリクエストは GET です。今回は、先ほどのAPIコールのヘッダーとは別に、Authentication Token(先ほどのAPIコールの後に出力として受け取ったもの)を以下のフォーマットで送る必要があります。

期待されるヘッダーは ‘Content-Type’: “application/json”,

Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInJlcG8iOiIxMC4wLjAiLCJleHAiOjE1NzM2NjE5NDUsImlhdCI6MTU3MzU3NTU0NSwiZGIiOiJTQU1QTCJ9.Lgdk9gPm6mFFGEnr6mRt7Vrq-nTnlP86ARKc16bP4syeTIvKQ55JX5r6aFXVC20xC2NwsjqbvAhd2f1r2PiIUA

requests.get関数では、URLとヘッダを渡しています。また、resay_for_status()を行い、.json関数でレスポンスを読み込んでいます。このAPIでは、必須のボディデータはありません。データベースを辞書として取得し、それを処理してユーザーがCompassデータへのアクセスを選択できるように表示する必要があります。

auth = “Bearer”+” “+auth_data[‘token’]

headers1={‘Content-Type’: cont_type,

‘Authorization’: auth

}

db_url = f”https://servername:8190/ccmweb/rest/repos/{RespositoryName}/databases

dbname_response = requests.get(db_url,

headers=headers1

)

dbname_response.raise_for_status()

dbnames = dbname_response.json()


4. 親フォルダのDBIDを取得してクエリを作成する

ワークスペース内のあるフォルダにクエリを作成する必要があります。そのためには、ルートワークスペースにどのようなフォルダがあるかを調べる必要があります。この例では、クエリは一時的なものなので、「Public Queries」フォルダに保存します。そのため、ワークスペース内の「Public Queries」フォルダの DBID を調べる必要があります。この目的のために Folders API を使用し、エンドポイントを /ccmweb/rest/repos/ リポジトリ名 /databases/ データベース名 /workspace/folders とします。 使用する HTTP リクエストは GET です。

期待されるヘッダーは、'Content-Type': "application/json",

Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInJlcG8iOiIxMC4wLjAiLCJleHAiOjE1NzM2NjE5NDUsImlhdCI6MTU3MzU3NTU0NSwiZGIiOiJTQU1QTCJ9.Lgdk9gPm6mFFGEnr6mRt7Vrq-nTnlP86ARKc16bP4syeTIvKQ55JX5r6aFXVC20xC2NwsjqbvAhd2f1r2PiIUA

requests.get関数にパラメータを渡し、いつものようにraise_for_status関数を使い、.json関数を使って出力されたレスポンスをキャッチする必要があります。このJSONデータをjson.dumps関数に渡します。この出力から、次のAPIで必要となるdbIdデータに興味があります。

parent_url = f”https://servername:8190/ccmweb/rest/repos/{RepositoryName}/databases/{DatabaseName}/workspace/folders

parent_dbid_response = requests.get(parent_url ,headers=headers1)

parent_dbid_response.raise_for_status()

parent_dbid_higher = parent_dbid_response.json()

parent_dbid = parent_dbid_higher[1][‘dbId’]


5. クエリ定義の作成

ユーザーからアクセスが必要なデータベースと親DBIDの入力を得たら、スクリプトの目的は、そのデータベース内のどの欠陥が所有されているかをユーザーに表示することです。このため、最初のステップでは、ログインユーザが所有するすべての欠陥を表示するためのクエリ定義を作成する必要があります。この目的のために、QueryDefs API を使用します。エンドポイントは /ccmweb/rest/repos/リポジトリ名/データベース名/workspace/queryDefs で、使用する HTTP リクエストは POST です。このAPIでは、従来のAPIと同様のヘッダが必要ですが、構築されるクエリの構造を形成するボディデータが必須となります。

期待されるヘッダは ‘Content-Type’: “application/json”,

Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInJlcG8iOiIxMC4wLjAiLCJleHAiOjE1NzM2NjE5NDUsImlhdCI6MTU3MzU3NTU0NSwiZGIiOiJTQU1QTCJ9.Lgdk9gPm6mFFGEnr6mRt7Vrq-nTnlP86ARKc16bP4syeTIvKQ55JX5r6aFXVC20xC2NwsjqbvAhd2f1r2PiIUA

本体のデータは以下のようになり、変数query_dataに格納されます。

query_data={ “name”: “MyDefects”,

“dbIdParent”: parent_dbid,

“primaryEntityDefName”: “Defect”,

“queryFieldDefs”: [

{

“fieldPathName”: “Headline”,

“isShown”: “true”

}

],

“filterNode”: {

“boolOp”: “BOOL_OP_AND”,

“fieldFilters”: [

{

“fieldPath”: “Owner”,

“compOp”: “COMP_OP_EQ”,

“values”: [username],

“stringExpression”: “= username”

}

]

}

}

ボディデータをもう少し詳しく見てみましょう。いつものように、ボディデータはJSON形式です。

name – Name of the query.

dbIdParent – The dbid of the parent directory where the query is to be created.

primaryEntityDefName – Record type name.

queryFieldDefs – fieldPathName is the field name.

isShown : true – To display the specific field in the result set.

filterNode – boolOp – AND – Operator for adding multiple filters to the query.

fieldFilters – These are the fields to provide as filters.

fieldPath : Owner – Field name of the filter

compOp – COMP_OP_EQ – Denotes Equal to

values : [username] – ユーザー名は、ユーザーの実際のユーザー名に置き換えられます。この条件では、フィールドOwnerが提供されたユーザー名と等しくなっています。したがって、クエリはオーナーが提供されたユーザー名であるすべてのDefectをリストアップする必要があります。

API用のパラメータの準備ができたので、これらを requests.post 関数に渡し、いつものように raise_for_status 関数を使用して、.json 関数を使用して出力レスポンスをキャッチします。json.dumps関数でJSONデータを渡します。この出力から、次のAPIで必要となるdbIdのデータに興味があります。

query_db = input(“\nEnter Database name to build query : “)

query_data={ “name”: “MyDefects”,

“dbIdParent”: parent_dbid,

“primaryEntityDefName”: “Defect”,

“queryFieldDefs”: [

{

“fieldPathName”: “Headline”,

“isShown”: “true”

}

],

“filterNode”: {

“boolOp”: “BOOL_OP_AND”,

“fieldFilters”: [

{

“fieldPath”: “Owner”,

“compOp”: “COMP_OP_EQ”,

“values”: [username],

“stringExpression”: “= username”

}

]

}

}

query_url = f”https://servername:8190/ccmweb/rest/repos/{RepositoryName}/databases/{DatabaseName}/workspace/queryDefs

query_response = requests.post(query_url,headers=headers1,data=json.dumps(query_data))

query_response.raise_for_status()

query_out = query_response.json()

query_dbid = query_out[‘dbId’]


6. クエリ定義の実行と結果セットの構築

前のステップで Query Dbid を受け取ったので、これを使ってクエリの実行と結果セットの構築を行う必要があります。これらの操作はいずれも ResultSets API で行います。使用する HTTP リクエストは POST です。この目的のために、次のエンドポイントを使用します。/ccmweb/rest/repos/repositoryname/databases/databasename/workspace/queryDefsquerydbid/resultsets。使用するヘッダーは、前のステップと同じです。

期待されるヘッダーは ‘Content-Type’: “application/json”,

Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInJlcG8iOiIxMC4wLjAiLCJleHAiOjE1NzM2NjE5NDUsImlhdCI6MTU3MzU3NTU0NSwiZGIiOiJTQU1QTCJ9.Lgdk9gPm6mFFGEnr6mRt7Vrq-nTnlP86ARKc16bP4syeTIvKQ55JX5r6aFXVC20xC2NwsjqbvAhd2f1r2PiIUA

このAPIでは、ボディデータの受け入れが必須となっています。もし特定のパラメータがない場合は、以下のように空の json を渡すことができます。

query_exec_data={

}

これ以外にも、URL、データ、ヘッダーが requests.get 関数に渡されます。いつものように、ここでも raise_for_status、json.dumps、.json の各関数を使います。出力結果から、次のAPIリクエストに渡すための「result_set_id」が得られることを期待しています。

query_exec_url = f”https://servername:8190/ccmweb/rest/repos/{RepositoryName}/databases/{DatabaseName}/workspace/queryDefs/{Querydbid}/resultsets

query_exec_data={

}

query_exec_response=requests.post(query_exec_url,headers=headers1,data=json.dumps(query_exec_data))

query_exec_response.raise_for_status()

query_exec_results = query_exec_response.json()

resultset_id = query_exec_results[‘result_set_id’]


7. クエリの結果セットのユーザーへの表示

いよいよ結果セットをユーザーに表示します。これには、ResultSet API を使用し、エンドポイントとして /ccmweb/rest/repos/repositoryname/databases/databasename/workspace/queryDefs/querydbid/resultsets/resultsetid を指定します。前のステップの出力としてresultsetidを取得しました。HTTPリクエストはPOSTです。パラメータとしてURLとヘッダを指定するだけです。

期待されるヘッダは ‘Content-Type’: “application/json”,

Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInJlcG8iOiIxMC4wLjAiLCJleHAiOjE1NzM2NjE5NDUsImlhdCI6MTU3MzU3NTU0NSwiZGIiOiJTQU1QTCJ9.Lgdk9gPm6mFFGEnr6mRt7Vrq-nTnlP86ARKc16bP4syeTIvKQ55JX5r6aFXVC20xC2NwsjqbvAhd2f1r2PiIUA

Python Prettytableパッケージを使って、結果を表形式で表示します。結果セットの出力は、辞書形式で提供されます。そこから行の値を取得して、必要な値をPythonのリストとして抽出します。クエリ構成データでは、表示フィールドにHeadlineというフィールドのみを要求しましたが、出力にはデフォルトでdisplayNameが含まれており、これはレコードのID以外の何物でもありません。

result_set_url = f”https://servername:8190/ccmweb/rest/repos/{RepositoryName}/databases/{DatabaseName}/workspace/queryDefs/{Querydbid}/resultsets/{Resultsetid}”

result_set_response = requests.get(result_set_url,headers=headers1)

result_set_response.raise_for_status()

resultset_results = result_set_response.json()

second_final = resultset_results[‘rows’]

headline_value = []

id_value = []

for i in second_final:

headline_value.append(i[‘values’])

id_value.append(i[‘displayName’])

x.add_column(“ID”,id_value)

x.add_column(“Headline”,headline_value)

print(x)


8. クエリ定義の削除

次の作業は、作成したクエリを削除して、スクリプトを実行するたびに新しいクエリが作成されるように、Compass のデータベースに表示されないようにすることです。これには QueryDef API を使用し、エンドポイントを /ccmweb/rest/repos/reposittoryname/databases/databasename/workspace/queryDefs/querydbid とします。このためのHTTPリクエストはDELETEです。パラメータとしてurlとheadersを受け取ります。

期待されるヘッダーは ‘Content-Type’: “application/json”,

Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInJlcG8iOiIxMC4wLjAiLCJleHAiOjE1NzM2NjE5NDUsImlhdCI6MTU3MzU3NTU0NSwiZGIiOiJTQU1QTCJ9.Lgdk9gPm6mFFGEnr6mRt7Vrq-nTnlP86ARKc16bP4syeTIvKQ55JX5r6aFXVC20xC2NwsjqbvAhd2f1r2PiIUA

これまでのAPIリクエストで使われていた通常の機能とは別に、今回の違いは、何の出力も受け取らないということです。この場合、クエリが正常に削除されたかどうかをどうやって知ることができるでしょうか?それには、HTTPステータスコードを利用します。通常、HTTPレスポンスコードが200の範囲にあれば、リクエストが成功したことを意味します。そこで、HTTPレスポンスからステータスコードを取得するために、response.status_code関数が必要になります。これを条件文に渡すことで、クエリの削除が成功したかどうかを検証することができます。

remove_query_url = f”https://servername:8190/ccmweb/rest/repos/(RepositoryName}/databases/{DatabaseName}/workspace/queryDefs/{Querydbid}”

remove_query_response = requests.delete(remove_query_url,headers=headers1)

remove_query_response.raise_for_status()

remove_query_final_response = str(remove_query_response.status_code)

if remove_query_final_response.startswith(’20’):

print(“\nRemoving Query Successful”)

else:

print(“\nRemoving query failed! Please manually remove”)


9. CCM REST サーバーからのログオフ

クエリの出力をユーザーに表示することができたので、意図したタスクはすべて完了しました。あとは、セッションを蓄積してサーバに負荷をかけないようにするために、サーバからログオフするだけです。この目的のために、Authenticate APIを使用し、エンドポイントを/ccmweb/rest/authenticate/logoff とします。HTTPリクエストはPOSTです。先ほどのAPIリクエストと同様に、パラメータとしてURLとヘッダーのみを受け取ります。前のステップで行ったように、ログアウトが成功したかどうかを知るための出力はありませんので、ステータスコードも調べます。

期待されるヘッダーは 'Content-Type': "application/json",

Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsInJlcG8iOiIxMC4wLjAiLCJleHAiOjE1NzM2NjE5NDUsImlhdCI6MTU3MzU3NTU0NSwiZGIiOiJTQU1QTCJ9.Lgdk9gPm6mFFGEnr6mRt7Vrq-nTnlP86ARKc16bP4syeTIvKQ55JX5r6aFXVC20xC2NwsjqbvAhd2f1r2PiIUA

logout_url=”https://servername:8190/ccmweb/rest/authenticate/logoff

logout_response = requests.post(logout_url,headers=headers1)

logout_response.raise_for_status()

logout_final_response = str(logout_response.status_code)

if logout_final_response.startswith(’20’):

print(“\nLogout Successful”)

else:

print(“\nLogout Failed!”)


スクリプトの完全な出力

スクリプトの完全な出力は以下の通りです。システム内のリポジトリの一覧が表示されます。RESTサーバへの認証のために、ユーザ名、パスワード、データベースを入力する必要があります。

次に、ユーザが所有するレコードをリストアップするためのクエリを作成するために親ディレクトリを見つけます。レコードを作成して表示した後、クエリを削除してRESTサーバーからログアウトし、途中でエラーが発生した場合は報告します。

The repositories available on this server are

———————————–

CadenceTest RestAPIDemo

Authenticating to Compass Rest API server!

Enter Repository Name : RestAPIDemo

Enter your username : admin

Enter your password :

Enter db name : RESTD

Listing the Databases for the repository RestAPIDemo

The database name(s) are as follows

RESTD

restn

Building a Query to display records assigned to you

Enter Database name to build query : RESTD

Executing the Query

Displaying the Result Set

+—————+———————————–+

| ID | Headline |

+—————+———————————–+

| RESTD00000041 | [‘Testing RestAPI Demo Record 1’] |

| RESTD00000042 | [‘Testing RestAPI Demo Record 2’] |

+—————+———————————–+

Removing the Query

Removing Query Successful

Logging off

Logout Successful


結論

これで、COMPASS HTTP REST APIの使用を実演するための簡単なスクリプトを作成するという、我々がやろうとしたことは達成されました。これが、HCL Compassのデータを使ったより複雑なアプリケーションやインテグレーションの開発に役立つことを期待しています。


参考文献

https://help.hcltechsw.com/compass/2.0.2/com.hcl.compass.doc/webhelp/oxy_ex-1/com.ibm.rational.clearquest.oslc_cmrest_api.doc/topics/c_rest_api_introduction.html


HCL Compass の eSignature パッケージ機能

2021/9/23 - 読み終える時間: 4 分

eSignature package feature in HCL Compass https://blog.hcltechsw.com/compass/esignature-package-feature-in-hcl-compass/

HCL Compass の eSignature パッケージ機能

2021年9月20日

著者: Garima Hans / HCL TECHNICAL SPECIALIST

画像の説明

eSignatureとは?

電子署名(e-signature)とは、署名者を識別するための信頼できる方法を提供し、その人を電子文書の内容に拘束する電子的手段のことです。

なぜeSignatureが重要なのか?

電子署名は、コンパスの問題を解決するために、ユーザー認証とアクティビティの追跡を提供することで、データ・セキュリティの向上に役立ちます。 例えば、電子署名は、Compass環境を米国FDAに準拠させるために必要となる場合があります。

  • すべてのレコードタイプにアクセスするためのユーザー認証を、各移行や変更の前に実施できます。
  • 承認記録の承認/拒否時に電子署名を要求することをサポートします。
  • トランジションの履歴とその作成者を専用パネルに表示します。

このような仕組みになっています。 あるレコードタイプにeSignatureパッケージを適用する。 そのレコードタイプのレコードには、eSignatureフィールドの新しいタブが含まれます。ユーザー名」「パスワード」「署名ログ」「Is Current」です。署名が必要な場合、ユーザー名とパスワードは必須フィールドとなり、そうでない場合は読み取り専用となります。

eSignatureパッケージはどのように適用できるのか

パッケージを適用できるのは、スキーマ管理者権限を持つユーザーまたはスーパーユーザー/コンパス管理者のみです。Compass管理ツールがインストールされているマシンから適用する必要があります。

  1. HCL Compass Designerを起動します。
  2. eSignatureパッケージを適用したいスキーマリポジトリに接続します。

画像の説明

  1. スキーマバージョンを右クリックし、パッケージの適用をクリックします。

画像の説明

  1. 適用する eSignature パッケージとそのバージョンを選択します。

画像の説明

  1. 有効にしたいレコードタイプを選択します。

画像の説明

  1. 完了をクリックして、選択したパッケージをインストールする。

  2. インストールが完了したら、最新のスキーマバージョンの変更を確認して、ユーザーDBをアップグレードする必要があります。この作業は元に戻すことができませんので、DBA と共にバックアップを取ることを忘れないでください。

画像の説明

画像の説明

WebUIでレコードタイプにeSignatureを設定する

次のステップは、CompassのWebUIで行います。 あなた(または指定されたユーザー)は、選択したレコードタイプとデジタル署名を取得するアクションのためにeSig_Configを作成する権限を持っている必要があります。必要なオプションを選択し、保存をクリックします。

eSig_Configレコードには、署名するレコードタイプを選択するためのフィールドと、そのタイプのレコードがいつ署名されるかを示すために使用する2つのオプションが用意されています。ステート」と「アクション」です。レコード タイプがステートフルの場合は、State と Action の両方のオプションが使用できます。レコードタイプがステートレスの場合は、アクションのみが利用可能です。レコード タイプを変更すると、ステートとアクションの選択はクリアされます。

eSig_Config レコードに対してアクションベースの基準とステートベースの基準の両方を選択した場合、指定したタイプのレコードがいずれかの基準を満たす場合には、署名が必要となります。

画像の説明

署名が必要な場合、ここで入力されたユーザー名とパスワードは、HCL Compass環境へのログインに使用されたユーザー名とパスワードと比較されます。アイデンティティが一致した場合、変更が受け入れられ、署名が記録されます。IDが一致しない場合は、エラーメッセージが表示され、データベースへの変更は行われません。

セットアップが完了すると、誰かが既存のレコードや新しいレコードを変更した場合、変更を保存するためにeSignatureのユーザー名とパスワードのフィールドが必須となります。

画像の説明

eSignature Logに表示される情報は以下の通りです。

  • 記録に署名した人のユーザー名。
  • ユーザーの印刷名
  • ユーザーのグループ・メンバーシップ
  • 実行中のアクション。
  • レコードの最終状態。
  • アクションのタイムスタンプ。

署名は、署名が適用されてからレコードが変更されていない場合にのみ有効です。読み取り専用のフィールドIs Currentには、レコードへの最後の変更に署名が含まれている場合は値「True」が、そうでない場合は値「False」が格納されます。

画像の説明

eSignature」タブには、レコードの署名履歴を表示するフィールド「eSignature Log」があります。このフィールドには、署名が行われた変更のみが含まれます。

eSigログはカスタマイズも可能です。詳しいカスタマイズ方法については、https://help.hcltechsw.com/compass/2.0.2/com.hcl.compass.doc/webhelp/oxy_ex-1/com.ibm.rational.clearquest.schema.ec.doc/topics/sch_pkgs/c_customize_esig.html を参照してください。

あなたの組織では、スキーマにeSigパッケージのような同様の要件がありますか?下記のディスカッションにご参加ください。


DevOps India Summit 2021 をふりかえって

2021/9/2 - 読み終える時間: 2 分

DevOps India Summit 2021 Recap の翻訳版です。


DevOps India Summit 2021 Recap

2021年9月1日

著者: Bhavani Sidharth / DevOps Sales, HCL

画像の説明

DevOps India Summit(DOIS)は、南アジア最大のDevOpsイベントとして注目されています。インドの開発者数は全世界の2700万人のうち600万人と非常に多く、このイベントはソフトウェア開発業界において非常に重要な意味を持っています。今年の8月27日と28日に開催されたDOISでは、2日間に渡って、スピーカーセッション、パラレルトーク、ディスカッションが行われ、世界中の人々が考えを共有しました。

今回のサミットではパンデミックに焦点が当てられておらず、「前例のない時代」「在宅勤務」「セキュリティと事業継続」「運用上の課題」「パンデミックがIT業界の働き方に与える影響」などの議論はほとんどありませんでした。まるで、業界が新しい常識に慣れてしまい、それが「いつものこと」になっているかのようでした。では、世界最大の開発者コミュニティにとって、「いつものこと」とはどのようなものなのでしょうか。以下に、複数のソートリーダーから集めたいくつかのテーマを紹介します。

DevOpsは持続可能性の一翼を担うことになる

環境に配慮した開発や、今後数年間に組織が行う選択が、ソフトウェアの構築方法を左右することになるでしょう。持続可能性に関しては、すべての人が関わっているのに、なぜ開発者は不可決なのか?

環境に優しいソフトウェア開発とは何でしょうか?それは、PythonかC言語か、GCPかAWSか、自動化か手動化かといった選択の問題です。開発者は環境に配慮した選択を求められ、組織全体の二酸化炭素排出量の目標に合わせることを求められるでしょう。

誰もがお客様に責任を持つ

アマゾンで働き、毎月リーダーシップミーティングに同席している友人によると、これらのミーティングで常に問われるのは、「それはどのようにお客様の役に立つのか」ということだそうです。すべてのアイデア、すべての製品、すべての新しい考えは、この1つの質問に答える必要があります。長い間、開発者やデザイナーは自由を必要とする創造的な人々であり、創造はほとんどが孤立して行われていました。

Value Stream Management(VSM)は、私たちが見ているように、「Day 2 DevOps」、つまり多くの組織が今取り組んでいるDevOpsの進化の次の段階です。開発者はもちろん、営業やマーケティング、さらには財務や人事を含む開発・運用チームは、すべて顧客に答えを出すことになります。指標があること、可視性があること、システムに効率性があること、レポートがあること、そしてスピードがあることは当たり前のことです。しかし、これらすべてがどのようにしてビジネス価値をもたらすのでしょうか?チームはアジャイルでテストを自動化し、本番へのデプロイを高速化していますが、それがNPSの向上にどうつながるのでしょうか。しかし、それがNPSの向上にどう結びつくのでしょうか、マーケットシェアの拡大にどう結びつくのでしょうか。顧客サービスの迅速化にどう結びつくのか?

それは、ループを完成させ、データポイント間の点をつなげることです(これはまさに HCL Accelerate が行っていることです)。メトリクスは十分ではありません。顧客により良いサービスを提供するために新しいソフトウェアの開発に投資している CFO/CEO にとって、ループは閉じなければなりません。

オートヒーリングがガバナンスをサポート

障害を検出して報告するだけでは十分ではありません。不具合は自動的に治癒される必要があります。これは、テストデプロイメントソースコード管理バージョン管理プランニングなどに見られます。すべての製品は、自動修正する生来の知能を持ち、AI/MLが混入され、同じプラットフォーム上にある必要があります。さらに、開発と運用のプロセスは、修正が依存関係にどのような影響を与えるかを確認できるように、エンドツーエンドの可視性を持つ必要があります。当社のDevOpsソリューションは、問題の検出、修正、防止のための機能を提供し、ソフトウェア・デリバリー・パイプライン全体のガバナンスを向上させます。 オープンソースの役割

小規模なチームであれば、無料のツールを使ってすぐにスタートを切ることができますが、企業レベルではセキュリティとスケールがより重要になります。しかし、どちらか一方だけを選択する必要はありません。オープンソースであるかどうかに関わらず、開発者が自分の好きなツールを使い続け、その上にセキュリティ、テスト、バリューストリームマネジメントなどのエンタープライズツールのエコシステムを構築することができます。私たちのソリューションは、「引き裂いて置き換える」という考え方ではなく、多様なツールチェーンにエンタープライズレベルのセキュリティ、スケーリング、分析機能を追加するものです。

DevOps India Summitは、複数のソートリーダーやイノベーターから、DevOpsの過去、現在、未来について話を聞くことができる興味深い2日間でした。カンファレンスに参加された方は、ご自身の感想をコメントでお聞かせください。


テクノロジーの統合: 次世代のHCL OneTest

2021/8/23 - 読み終える時間: ~1 分

Technology Integration: The Next Generation of HCL OneTest の翻訳版です。


テクノロジーの統合: 次世代のHCL OneTest

2021年8月23日

著者: Nabeel Jaitapker / Product Marketing Lead, HCL Software

画像の説明

HCL OneTest の最新リリースで最もクールな機能の一つは、様々なタイプの技術と統合できることです。

例えば、参照整合性を拡張してカスタムリレーションシップを追加したり、バージョン10.2でDDLを生成したりすることができます。

さらに、InstallAnywhere は、Installation Manager でサポートされている HCL OneTest 製品ファミリーの 14 言語すべてをサポートしています。これにより、翻訳されたインストールパッケージのおかげで、フレンドリーなインストール体験が保証されます。

HCL OneTest Server (GA)におけるHTTPトランスポートのサービス仮想化

Webサービス(SOAP、REST、HTTP)やIBM MQベースのアプリケーションをサポートし、サーバー上で仮想化することで、仮想サービスのスケーリングを簡素化し、デバッグを容易にし、新しいシステムモデル・ビューで使用状況を可視化します。

コントラクトテストのサポート: コンシューマ・ドリブン

APIが成熟するにつれ、提供者と消費者の間にはかなりの摩擦が生じます。- APIの仕様を少し変更しただけで、消費者の行動がおかしくなり、下流で複数の問題が発生する可能性があります。コントラクトテストにより、APIプロバイダとコンシューマは、API仕様の変更を迅速かつ容易に検証し、導入時の問題を回避することができます。

次世代のHCL OneTestについて説明したオンデマンドのウェビナーをご覧ください。


HCL OneTest: 次世代版におけるエンタープライズ・エコシステム

2021/8/20 - 読み終える時間: ~1 分

Enterprising Ecosystems: The Next Generation of HCL OneTest の翻訳版です。


HCL OneTest: 次世代版におけるエンタープライズ・エコシステム

2021年8月12日

著者: Nabeel Jaitapker / Product Marketing Lead, HCL Software

画像の説明

HCL OneTest の最新版のおかげで、企業のエコシステムでの生活が格段に楽になりました。

最新版ではどのようなことができるのか、簡単に見てみましょう。

Azure DevOps環境での作業

Microsoftの環境におけるAzure DevOpsサービスとの統合は、ユーザーエクスペリエンスを向上させるために拡張され続けています。そうすることにしたのは、多くのお客様が開発やテストのシナリオにAzureプラットフォームを採用しており、その選択した環境でのサポートを継続したいからです。

さらに、パッケージ化されたAzure Kubernetes Serviceのデプロイメントサーバーをユーザーにインストールしてもらうことで、よりシンプルで管理しやすくなります。また、バックアップにはVeleroなどのAzure Kubernetesサービスを利用することで、真に統合された体験を提供しています。

HCL OneTest UIデスクトップエージェント

シンプルなテスト実行手段を提供することは、HCL OneTestのコアバリューであり、UIテスト用のシンプルなエージェントを公開することで、テスターが利用できる実行メカニズムの範囲を拡大します。デスクトップとモバイルの実行機能が更新されたことで、ユーザーはWindowsデスクトップアプリケーション、モバイルWeb、iOSおよびAndroidデバイスのハイブリッドアプリケーションで実行を指揮できます。

モバイル・ネイティブ・アプリケーションやハイブリッド・アプリケーションの自動化とテストが容易に

バージョン10.2では、ネイティブおよびハイブリッドのモバイルアプリケーションに対するアプローチも刷新されています。

Web UIテストのSmartShotテクノロジーを採用し、複雑なアプリケーションフローを記録し、プロセスの各ステップのインタラクティブなスクリーンショットで検証ポイントを設定することができるようになりました。これにより、テストにおける検証の設定にかかる労力が劇的に簡素化されます。また、OneTest UIは、ローコード/ノーコードのアプローチをとることで、AIドリブンヒーリングツールキットを適用し、テストのメンテナンスにかかる労力を大幅に削減できます。

モバイルデバイスでの実行は、エミュレータ、付属の物理デバイス、またはPerfecto、Bitbarなどのパートナーを介して実現できます。

MS Windowsデスクトップアプリケーションの簡単な自動化と検証

最新バージョンでは、Windows上のデスクトップアプリケーションのテストに対するアプローチも一新されました。

10.2のWindows Native Applicationsのサポートにより、Windows 10でのデスクトップアプリケーションのテスト方法が変わります。Webやモバイルのネイティブテストで行ってきたように、SmartShotのインタラクティブなスクリーンショット技術をデスクトップアプリケーションのテストに導入し、リッチなクロスアプリケーションのテストシナリオを可能にしています。

次世代のHCL OneTestについてのオンデマンド・ウェビナーをご覧ください。


HCL Accelerate: ビジネス vs. 開発におけるバリューストリームマネジメントの導入

2021/8/20 - 読み終える時間: 2 分

Business vs. Development: How value stream management fits in の翻訳版です。


HCL Accelerate: ビジネス vs. 開発におけるバリューストリームマネジメントの導入

2021年8月16日

著者: Elise Yahner / Marketing Strategy and Campaigns for HCL Software DevOps

画像の説明

ビジネス側は、開発の進捗が遅すぎるし、お金をかけすぎていると思っている。開発は、ビジネスが時間的・金銭的に無理な要求をしていると考えている。聞き覚えがありませんか?ビジネスと開発の戦いは、多くの企業にとって共通のものですが、だからといって解決できないわけではありません。アナリスト企業であるForrester社は、Integrated Value Stream Management Benefits Business and Development Leaders というレポートを発表し、この問題とその解決方法を採りあげています。

この記事では、このレポートから得られた重要なポイントと、それが組織にとってどのような意味を持つのか、そしてどのように行動すべきなのかをご紹介します。

ビジネスリーダーと開発リーダーの価値観の違い

これは当然のことのように思えるかもしれませんが、この2つの視点の違いをより深く掘り下げて考えてみましょう。ビジネスリーダーはROIとTime to Marketを重視し、開発リーダーはソフトウェア製品の作成に必要なステップを重視します。しかし、スピードが問題であることはどちらも同じです。Forrester社のレポートによると、「開発リーダーもビジネスリーダーも同様に、C-suiteが現在の変化のペースに満足していないとForrester社に語っている」という。

ビジネス目標を伝えるのは電話ゲームのようなもので、目標が開発に伝えられるまでに、重要な要素が失われてしまうことがよくあります。開発者は、自分たちが何を求められているのか、その「理由」がわからず、暗闇の中に取り残されたような気分になります。その結果、優先順位がずれたり、ビジネス目標を達成できないソフトウェアソリューションが生まれたりするのです。開発チームとビジネスチームが異なる言語を話しているのに、誰も翻訳者が必要であることを知らないのと同じです。

両者の視点を調整するバリューストリームマネジメント

戦略レベルでのバリューストリームは、ビジネスと開発の間で必要とされる翻訳者です。ビジネスはなぜ開発が迅速に進まないのかを理解できず、開発はビジネスが何を求めているのかを理解できないとき、価値観の流れは、バラバラになったチームのすべてのデータを可視化し、行動可能にすることで、その答えを導き出します。バリューストリームの定義によれば、行われているすべての作業をある価値に結びつけることで、組織全体のリーダーは、何が価値を生み出しているのか、何がボトルネックの原因になっているのかを簡単に見分けられます。

バリューストリームマッピングは最初のステップですが、静的な情報を用いた手動のプロセスです。バリューストリームから本当に利益を得るためには、戦略的な情報収集と解釈を自動化するバリューストリームマネジメント(VSM)ツールが必要です。Forrester のレポートで指摘されているように、「戦略的な優先順位付けの基準としてバリューストリームを使用することで、製品チームにガイダンスが与えられ、製品チームは VSM を使用して製品の提供を成功させることができます」。

例えば、HCL Accelerate は、DevOps パイプライン全体のツールからデータを集約し、そのデータを正規化し、それを使用してカスタムキーメトリクスに基づくダイナミックダッシュボードを作成します。HCL Accelerateのさまざまなバリューストリームビューを使用することで、ビジネスリーダーと開発リーダーの両方が、誰が、何を、いつ、どこで、何のために作業をしているのかを明確に可視化できます。単一の真実の情報源があり、誰もが同じ情報にアクセスできると、コミュニケーションが容易になり、直感ではなくデータに基づいた意思決定が可能になります。

成長を加速するには、バリューストリームマネジメントの優先順位付けが鍵

強力なツールを導入しただけでは十分ではありません。バリューストリームマネジメントの恩恵を真に受けるためには、ビジネスリーダーや開発リーダーがデータ駆動型の文化を受け入れ、それをチームに伝道する必要があります。そのためには、ビジネスとデベロップメントが、成功を特定して測定するための共通のフレームワークとして、目的と主要な結果(OKR)に同意することが不可欠です。Forrester社のレポートでは、「タイムボックス付きのパフォーマンス期間を設定することで、対話を活発にし、必要に応じてチームがピボットできるようにする」と述べられています。VSMツールでこれらのOKRをモニタリングすることで、組織内のすべてのグループは、組織が何を目指しているのか、自分たちの仕事がこれらの目標にどのように影響するのかを確認できます。言い換えれば、組織内の各グループに情報と説明責任を持たせることができる。

VSMを組織全体に導入するためのもう一つの重要なポイントは、VSMのチャンピオンを特定することである。もちろん、リーダーはVSMの導入を提唱すべきだが、個々のコントリビューターレベルでチャンピオンがいれば、文化的な変化を加速させることができる。ビジネス部門と開発部門にバリューストリーム・マネージャーの役割を設けることで、戦略的バリューストリームの文化をさらに促進し、これらの部門間のギャップを埋められます。

戦略的バリューストリームの利点は明らかであり、バリューストリームマネジメントはこのコンセプトを最大限に活用するための方法です。より速く前進し、競争力を維持したいのであれば、組織内でVSM戦略の導入を始めるかどうかではなく、いつ、どのように始めるかが問題となるはずです。HCL Accelerateは無料のCommunity Editionを提供していますので、すぐに始められます。こちらからダウンロード してください。


HCL Accelerate: ソフトウェアデリバリーの未来

2021/8/20 - 読み終える時間: 2 分

The Future of Software Delivery の翻訳版です。


HCL Accelerate: ソフトウェアデリバリーの未来

2021年8月12日

著者: Cassandra Stanek / Product Marketing Manager

画像の説明

ソフトウェア業界の変化の速さには目を見張るものがありますが、特にDevOpsの文脈で考えると、その速さは際立っています。わずか10年前にはDevOpsという言葉はほとんど知られていませんでしたが、ソフトウェアデリバリーにおけるこの根本的な変化は、今日では誰もが認めるところとなっています。

ソフトウェアデリバリーの未来は、アイデア出し、反復、そしてサイロ化した作業の打破に、より多くの時間を費やすことです。これはどのように行われるのでしょうか。それは、ビジネスやチェンジマネジメントの世界で長く実践されてきた、「バリューストリーム・マネジメント」という概念です。ソフトウェア・デリバリーにおけるバリュー・ストリーム・マネジメントとは、ソフトウェア・デリバリーをエンド・ツー・エンドで監視し、"付加価値 "を最適化することです。簡潔に言えば、これはDevOpsの次の自然な進化です。

Gartner社は、2021年はバリューストリームがDevOpsの未来を決める年になると予測 しています。この破壊的な新しいDevOpsの考え方は、チームが複数の製品をリンクさせて、ソフトウェアデリバリーのための「バリューツールチェーン」を作り始めたことから始まります。従来、このプロセスはサイロ化されており、チームはフィードバックなしに合理的なプロセスでコードを構築し、デプロイしていました。

バリューストリームマネジメント2021の現状

現在、企業はソフトウェアデリバリープロセスのパフォーマンスを可視化するために、バリューストリームマップを活用する最前線に立っています。The State of Value Stream Management Report 2021 によると、バリューストリームの可視化により、ボトルネックを減らし、ソフトウェアデリバリーの速度を向上させられます。報告された最も価値のあるメトリクスのトップ5は以下の通りです。

  • サイクルタイム
  • ワークインプログレス(WIP
  • スループット
  • コード品質
  • フロー効率

このレポート では、これらの重要な指標を収集する際にチームが直面している共通の課題も明らかにしています。

  • 25.9%のチームは、複数のソースやスプレッドシートからデータを手動で収集しています。
  • 36.6%のチームがフローメトリクスをダッシュボードに集約しています。
バリューストリームの活用

バリューストリーム管理ツール HCL Accelerate は、チームがこれらのメトリクスの収集を自動化し、バリューストリームを中心に組織化し、継続的な改善のエコシステムを構築する機会を提供します。VSMツールの中には、特定のDevOpsツールからのデータしか使用できないものもありますが、HCL Accelerateは、組織がすでに使用しているすべてのDevOpsツールと統合します。スプレッドシートでデリバリーメトリクスを追跡する手動プロセスを排除し、バリューストリームがどのように運用されているかの統合ビューを作成します。

DevOpsツールチェーンを可視化することで、調整が容易になり、デジタルトランスフォーメーションの進行状況を明確に測定できるようになります。世界中に仕事が分散し、IT環境が複雑化しているこの時代に、ソフトウェアデリバリーを最適化するためには、ワークロードの自動可視化が必要です。

画像の説明

HCL Accelerateは、SoFy(クラウドネイティブなソリューションファクトリー)で利用できます。

HCL Software用語集
  • バリューストリーム。サービスを提供する顧客のために価値を創造するために協力する責任のあるすべてのメンバー
  • バリューストリームマッピング。Value Stream Mapping: バリューストリームを文書化する作業(一般的には箱と線で表現される)。
  • Value Stream Management。ソフトウェアのデリバリーをエンド・ツー・エンドで監視し、「付加価値」を最適化すること。

DevOps ソフトウェアをより早く評価する方法

2021/8/4 - 読み終える時間: 2 分

A faster way to evaluate DevOps software の翻訳版です。


DevOps ソフトウェアをより早く評価する方法

2021年8月2日

著者: Elise Yahner / Marketing Strategy and Campaigns for HCL Software DevOps

画像の説明

企業のソフトウェアを評価するのは難しいことです。そのソフトウェアを自分で使ってみないと、そのツールが自分の組織で使えるかどうか、どのように使えるかを理解するのは難しい。ほとんどの場合、エンタープライズ・ソフトウェアを十分に検討するためには、テクニカル・セールス・チームと協力してサンプル環境を構成・インストールし、意思決定者に使用方法をトレーニングする必要があります。メール、承認、電話、会議を何ヶ月も繰り返した後では、組織がDevOpsの旅を進めるために切実に必要としているソフトウェアについての決定には近づけないかもしれません。

最近のTechStrong TVのインタビュー で、HCL Software DevOpsのAl Wagnerは、Accelerated Strategies GroupのMitch Ashleyとこの問題について話しました。Alは10年近くDevOpsの変革に関するコンサルティングを行っており、また20年間技術系の仕事をしてきたので、企業のソフトウェア評価の旅には非常に詳しいです。Al はこう言っています。

「組織が新しいツールを試しているとき、長期的なコミットメントをする前に、環境をプロビジョニングしたり、モードをテストしたり、パイロットを実行して適合するかどうかを確認するという作業があります。時は金なり、これらのツールを並べて設定し、すぐに使えるように統合するには、かなりの時間がかかります」。

では、どのような解決策があるのでしょうか?HCL SoFy! "SoFy"とは "Solution Factory"の略で、コンテナ化されたHCL Softwareソリューションのクラウドネイティブ なカタログです。AlはHCL SoFyの仕組みをこう説明する。

「カタログを探索し、試してみたいことの一部としてさまざまなソリューションを選び、SoFyソリューションを作成できます。SoFyソリューションを作成すると、カスタムのHelmチャートが構築され、ローカル環境での展開方法やソリューションの展開方法について、モニタリングやカスタムのアクセスコントロール機能など、すべての詳細情報が提供されます。SoFyのインターフェース内でボタンをクリックすると、HCLのソリューションの1つをGoogle Cloudプラットフォームにデプロイしたり、Helmチャートをダウンロードして任意のKubernetes環境にデプロイできます」。

言い換えれば、わずか数分で環境を構成して実行することができるのです HCL SoFyにアクセスして、試したいDevOpsソフトウェアソリューションを選んで、デプロイできるのです。

しかし、このソフトウェアのテストに使えるデータや環境がない場合はどうすればいいのでしょうか?

「実際に試してみたいという方のために、データを使って製品を自動的に設定し、組織が旅を始めるときに遭遇する多くのユースケースをカバーする、ワークブック型のハンズオンを提供するデモ・ドキュメントの形でアクセラレーターを用意しています。「本番環境ではありませんが、試してみることができる環境であり、もし本番環境に移行したい場合は、Helmチャートをダウンロードして自分の環境にインストールできます」。

誰でもHCL SoFyへのアクセスをリクエスト すると、HCL Softwareの継続的デリバリー、課題追跡、テスト自動化バリューストリーム管理 ソフトウェアの無料トライアルを数分でダウンロードできます - エンタープライズソフトウェアをテストするために何ヶ月も待ったり、手間をかけたりする必要はありません。

「新しいソフトウェアをインストールする場合、たとえテストや探索的な活動のためであっても、インストール、管理、設定が必要です。これは非常に時間のかかる作業であり、ツールの能力を実感できない非常にイライラする作業でもあります。だからこそ、ソリューション導入の一環としてこれらの要素をすべて自動化することで、何もない状態から数分で何かができるようになり、それが作業環境になるのです」。 A TechStrong TVのインタビューは以下からご覧いただけます。HCL SoFyでDevOpsツールの評価をスピードアップする準備はできましたか?DevOpsInfo@hcl.com にメールするか、Al Wagnerに直接 Allan.Wagner@hcl.com にメールしてください。

DevOps Tools - Al Wagner, HCL Software from Digital Anarchist Network on Vimeo.


このブログについて

HCL Japan の Software 部門の複数担当者で HCL Software 全般について記しています。

Tags

Accelerate ambassador AoC AppDev Pack AppScan ASoC beta BigFix BigFix 9.5 BigFix_Wiki branding Client Applicatin Access cloud Cloud Apps Cloud Native Commerce community companion Compass compliance Connections Connections 6.5 ConnectionsDocs Connnections developerWorks DevOps DevOps.Launch.AppScan Digital Experience document Domino Domino AppDev Pacl Domino Volt DQL dW dx Enterprise Integrator event fix fix_list fixlist forum General guide HCAA HCL Ambassador HCL OneTest Embedded HCL Z and I Emulator HCL Z and I Emulator for Transformation hints_and_tips history IBM_i ID_Vault iNotes ios ios13 ipad iPhone Launch Launch.DevOps LEAP Link logo MarvelClient mobile mui nds2019 ndv12beta News Nomad Nomad Mobile Nomad Web Notes Notes/Domino Notes/Domino 10 Notes/Domino 11 Notes/Domno notescons Now on_premises OneDB OneTest osaka press_release relay RTist SafeLinx Sametime Sametime 11 SoFy support survey system_requirement techtek Traveler Traveler 10 Traveler for Microsoft Outlook traveler.zip Unica Unica Discover Unica Interact UrbanCode Deploy UrbanCode Velocity v11 V12 Verse Verse Mobile Verse On-Premises VersionVault Volt Webinar win7 youtube Z Z ABEND Investigator Z and I Emulator Z and I Emulator for Web Z Asset Optimizer ZAO ZIE ZIE for Web ZIE for Windows ZIEWeb うるう年 イベント ウェビナー ガイド クラウド クラウド終了 サイジング サポート サポート技術情報 サポート期間 サポート終了 セキュリティー セミナー ダイバーシティー ダウンロード テクてく テクてく Lotus 技術者夜会 ニュース ノーツコンソーシアム バージョンアップ パフォーマンス ベータ ポートフォリオ ライセンス 互換性 出荷日 各種ご案内資料 研修