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パッケージのような同様の要件がありますか?下記のディスカッションにご参加ください。


HCL Software の DevOps はクラウドネイティブ

2021/7/22 - 読み終える時間: 3 分

HCL Software DevOps is Cloud Native の翻訳版です。


HCL Software の DevOps はクラウドネイティブ

2021年7月20日

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

画像の説明

5年前、HCL Software チームは、当社のソフトウェア製品がダイナミックなパブリッククラウド、プライベートクラウド、ハイブリッドクラウドに数分でデプロイされる未来を想像していました。今、私たちは HCL SoFy と HCL Now の立ち上げにより、その時点に到達しました。HCL Software DevOps グループは、このクラウドネイティブな変革の一翼を担えることに興奮しています。私たちのお客様にとってのハイライトは以下の通りです。

  • 当社のバリュー・ストリーム・マネジメント、自動テスト、変更管理、および継続的デリバリー・ソリューションが、最新のクラウド標準をサポートするようになりました。
  • 2,000以上の REST API エンドポイントにより、開発者はミッションクリティカルな企業システムの拡張、統合、カスタマイズを容易に行えます。
  • クラウドで提供される DevOps ソフトウェアのデモやトライアルを、購入前にセルフサービスで試せます。

最後の点は、当社の DevOps ソリューションを実際に体験して、既存の DevOps パイプラインとの連携を確認したい場合に特に有効です。HCL SoFy を使用すると、HCL Software のお客様とパートナーは、HCL Accelerate、HCL Launch、HCL Compass、または HCL OneTest のトライアルを数秒で入手できます。以下のステップに従うだけです。

  • hclsofy.com にアクセスし、Request Access をクリックします。リクエストが承認されると、SoFy のログイン情報が記載された確認メールが送られてきます。
  • SoFy にログインして、カタログを見ながら試したいソフトを選びます。オンラインショッピングのような感覚で、すべて無料でご利用いただけます。
  • サンドボックスやローカルにデプロイできるソリューションを即座に構築するために、好きなだけ製品を追加して「作成」をクリックします。作成した SoFy ソリューションは最大30日間有効です。

HCL Software のお客様やパートナー様でなくても、SoFy へのアクセスは可能です。まずはこちらからデモをご依頼ください。

画像の説明

SoFy サンドボックスにソリューションを導入すると、事前に入力されたデータが得られるので、自分でデータを入力しなくてもソリューションを遊ぶことができ、ソフトウェアの体験にすぐに飛び込めます。現在、HCL Software DevOps ソリューションの SoFy には以下のデモが存在します。

  • HCL Accelerate

    • Value Stream Bottleneck Detection (バリューストリームボトルネック検出)
    • 自分のエピックはどこにある?
    • コードはどこにある?
    • KPIs: ワークアイテム、デプロイ、テストの洞察
  • HCL Launch

    • Storefront のサインインの変更
  • HCL OneTest

    • UI、API、パフォーマンステストのためのストアフロント変更のテスト
  • HCL Compass

    • 不具合管理システム
    • SAFe を使用した HCL Commerce 開発チーム

また、ソリューションをローカルにダウンロードして、ご自身のデータで当社のDevOpsソフトウェアをお試しいただくことも可能です。さらに、1対1のサポートをご希望の場合は、いつでも対応いたします。当社のDevOpsエキスパートチームは、ベストプラクティスを説明し、お客様のユニークな組織をサポートする戦略を立てるのが得意です。

クラウドネイティブなソリューションに対して、よりマネージドなアプローチをご希望ですか?HCL Nowはクラウド・ネイティブ・アズ・ア・サービスのソリューションで、お客様が選択したパブリック・クラウド上に専用のセキュアな環境を展開し、管理します。HCL Now は、最新バージョンの HCL Software DevOps ソリューションと、専任のエキスパートによる管理を、クラウドの柔軟性、拡張性、利便性とともに提供します。

当社のすべての DevOps ソリューションは、HCL Now でオンデマンドで利用できますが、HCL Now での HCL OneTest Performance は、テストを簡単にしたい HCL Commerce ユーザーにとって特に便利です。このセットアップでは、インフラストラクチャー管理、製品のアップグレードとサポート、セキュリティとプライバシーコントロールのメンテナンスを含むターンキーテストソリューションを提供します。つまり、新しいインフラに投資することなく、実際のピーク時の負荷を簡単にテストすることで、より早く開始し、コストを抑えることができるのです。

今こそ、DevOps の旅をクラウドで実現する時です。9月16日午後12時(米国東部時間)に開催されるウェビナー に参加して、HCL Now が選択したクラウド・ネイティブ・プラットフォーム上で、当社の DevOps ソリューションの可能性を最大限に引き出す方法を学んでください。HCL Now は、お客様が選択したクラウド・ネイティブ・プラットフォーム上で、HCL Software のDevOps ソリューションの可能性を最大限に引き出します。登録はこちら から。

最後にもう一度。HCL Software の DevOps はクラウドネイティブです。


HCL Complass はご希望通り、どんなビルドにも対応します

2021/7/9 - 読み終える時間: ~1 分

We Build What You Want の翻訳版です。

HCL Complass はご希望通り、どんなビルドにも対応します

2021年7月8日

著者: Arlene Kim / Product Marketing Manager

画像の説明

我々はあなたの欲しいものをビルドします

HCL Compassはお客様が求めるものビルドします。7月13日の 23時(日本時間)、HCL Compass は、お客様のパフォーマンス目標の達成を支援するために行われた新製品と広範囲にわたる機能強化について説明します。HCL Compass の技術者が、HCL Compass の完全にカスタマイズ可能なワークフロー管理システムの新機能を実演します。

このウェビナーでは、以下のことを学ぶことができます。

  • HCL Compass の新機能とは?
  • HCL Compass の REST API と Webhooks
  • SAFe の必須サポート
  • HCL Compass のクラウドネイティブストーリー

画像の説明

カスタマイズによる柔軟性を備えたこのローコード/ノーコードの変更管理ソフトウェアは、エンタープライズレベルのスケーリングに対応しており、プロジェクトのデリバリーを加速し、生産性を向上させるための適切なツールを提供します。分析、開発、テスト、デプロイメントなどのサイロ化されたプロセスを統合することで、コラボレーションを向上させる方法を当社チームが実演しますので、ぜひご参加ください。

お申し込みはこちらから。


HCL Compass: ダイナミックなダッシュボードの作り方 - イントロダクション -

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

How to Build Dynamic Dashboards: An Introduction の翻訳版です。


HCL Compass: ダイナミックなダッシュボードの作り方 -イントロダクション-

2021年5月28日

著者: Steve Campbell / Senior Technical Manager

画像の説明

HCL Compass 2.0.2 では、テクニカル・プレビューとして、サードパーティーのダイナミック・ダッシュボード・ツールとの統合を導入しました。統合レイヤーは Node-RED を使用し、HCL Compass への接続を可能にする Compass-Query Node を公開しています。これは、定義されたクエリからデータを抽出する目的で、接続を作成するインターフェースを提供します。Compass-Query Nodeは、HCL Compass のユーザーが、サードパーティーのソフトウェア製品で使用するために Compass のデータに簡単にアクセスできるよう、組織を支援することを目的としています。

Microsoft Power BiやTableauのようなダイナミック・ダッシュボード・ツールは、統合レイヤーを使用して HCL Compass からデータを引き出し、カスタム・ダイナミック・ダッシュボードを作成できます。Compass-Queryプロジェクトのすべてのドキュメントは、HCL Compass のパブリック GitHub プロジェクトで公開されています。

次のビデオは、HCL Compass を使用してダイナミック・ダッシュボードを構築する方法を示しています。

HCL Compass の詳細情報が必要ですか?

HCL Compass は、プロジェクト・デリバリーを加速し、開発者の生産性を向上させるために、エンタープライズ・レベルのスケーリング、プロセスのカスタマイズ、コントロールを可能にする、ローコード/ノーコードの変更管理ソフトウェアです。もし、ご自身の業務に適していると思われたならば、私たちのサイトで、HCL Compass のユーザーになることの利点を探ってみてください。


HCL Software DevOps: "Day in the Life" のデモ

2021/5月/19 - 読み終える時間: 6 分

A "day in the life" with HCL Software DevOps の翻訳版です。


HCL Software DevOps: "Day in the Life" のデモ

2021年5月18日

著者: Allan Wagner / HCL Software Transformation Architect

画像の説明

HCL Software DevOps は、あらゆる組織の DevOps ニーズを満たす統合ソリューションを提供しています。証拠が必要ですか?Emerald と呼ぶ架空のeコマース企業を使った例を見てみましょう。

エメラルドのメモリアルデーのビッグセールが数週間後に迫っています。この年に一度のセールイベントは、エメラルドの会計年度の中で2番目に大きな収益源であるため、サイトのすべてが完璧に機能していることが非常に重要です。残念ながら、エメラルドのサイトを訪れた人から、新規顧客として登録する方法がわからない、エメラルドのアプリケーションへのサインインに問題があるという報告がありました。製品チームはこの問題を修正し、Emerald がメモリアルデーのセールに間に合うように、できるだけ早く変更を本番に移さなければなりません。幸いなことに、Emerald は以下のような HCL Software DevOps ソリューションを使用しています。

これらのソリューションはすべて、HCLソフトウェアのクラウドネイティブソリューションである HCL SoFy に導入されており、Kubernetesを簡単に利用することができます。ユーザーは、HCL SoFyのカタログから使いたい製品を選び、「デプロイ」ボタンをクリックするだけ。数分後には、ユーザーは仕事に必要なソリューションを手に入れることができます。

Emerald社のプロジェクトマネージャーであるPaula氏は、HCL Compassでの作業中に、優先度の高い不具合が提出されたことに気付き、修復を開始するための計画フィールドを完成させました。その際、彼女はチーム、オーナー、そして履歴に基づいて適切と思われるストーリーポイントの数を特定します。また、ビジネス上の重要性を考慮して、サービスクラスを「迅速」に設定します。さらに、その修正が含まれるべきリリースとスプリントを選択し、バックログの状態に移行します。

画像の説明

次に、EmeraldのアナリストであるAlは、このワークアイテムをレビューし、開発者に追加情報を提供する。Alは、HCL Compassでバックログのすべてのワークアイテムを検索して、この最新のワークアイテムを見つけます。項目を開いて「計画」セクションを展開すると、AlはPaulaがこれを「迅速」とフラグを立て、アクティブなスプリントでの納品を予定していることがわかります。問題を完全に理解するために、Alはまず本番のEmeraldアプリケーションを調査し、ウェブサイトの訪問者がなぜ混乱しているかを確認します。彼は、HCL Compassで欠陥の説明を更新し、ワークアイテムを「分析済み」の状態にします。

エメラルドの開発者であるダイアンは、このスプリントですでにいくつかの仕事を割り当てられていますが、現在はいくつかの依存タスクが完了するのを待っています。帯域幅に余裕があるので、彼女はHCL Compassにログインして、作業状態に引き込める優先度の高いワークアイテムがないかチェックします。そこで彼女は、「迅速」とマークされた欠陥を見つけ、その作業項目のオーナーシップを受け入れ、修正作業を開始しました。

LindaはEmeraldの開発チームのリーダーです。彼女の一日は、この新しい欠陥を知らせるメールやメッセージが飛び交う中で始まり、その修正を製品に反映させることがいかに重要であるかを強調しています。このストレスに加えて、リンダはすでに自分のチームがキャパシティに達していることを懸念しており、根本的な原因やこのキャパシティの問題に対処する方法の答えを持っていません。HCL Accelerate では、Linda はバリューストリームのダッシュボードを見て、本番インシデントの概要を確認し、HCL Accelerate が Emerald Commerce Storefront バリューストリームの作業段階でボトルネックを特定したことに気づきます。バリューストリームを掘り下げると、Linda はボトルネックにカーソルを合わせ、それがフローの不均衡の結果であること、つまり「作業」段階に入る作業が出る作業よりも多いことを確認します。HCL Accelerateは、AI機能を使用してボトルネックを特定し、Accelerateのリポジトリに保存されているデータにアルゴリズムを適用することで、チームがスロースポットを特定するのを支援し、根本原因の詳細を提供して改善を加速させることができます。リンダは、チームの準備が整う前に作業を段階的に進めると、潜在的にチームの認知能力を超えてしまい、人為的でありながら回避可能なバリューストリームのボトルネックが発生することを知っています。リンダはまた、HCL Accelerate が「作業」ステージの「進行中の作業」制限を超えていることを強調していることに気づきます。彼女は、ワークアイテムのリストを確認し、過去24時間に2つの追加があることを確認します。ワークアイテムIDを素早く検索することで、Lindaは2つのワークアイテムを簡単に分離して確認することができます。また、スプリントごとにワークアイテムをフィルタリングすることで、アクティブなスプリントに関連する作業のみが実際に作業段階にあることを確認できます。必要なデータを手に入れたリンダは、次のスタンドアップミーティングで、作業をパイプラインステージに押し込んだり、引き込んだりするとフローが乱れることについて話し合うことにしました。

画像の説明

このデイリースタンドアップミーティングで、リンダは HCL Accelerate のスイムレーンビューを所有者別にフィルタリングした画面を共有しました。各チームメンバーが自分に割り当てられた作業の最新情報を共有した後、リンダは懸念を表明し、ストーリーの1つを分析段階に戻すことについてチームの考えを求めます。これにより、HCL Accelerate が指摘したボトルネックと仕掛かり品の問題が解決され、チームは優先度の高いタスクに集中することができます。

Emerald の製品オーナーである Peter は、機能リリースを遅らせる可能性のある顧客の問題が生産中であると人づてに聞いたため、心配になっています。状況に関する最新のデータを得るために、ピーターはHCL Accelerateのスイムレーンビューに行き、エピックでフィルタリングします。彼は、最も懸念している2つのエピックと、それらが本番でどのような状況にあるかをすぐに確認することができます。

画像の説明

LindaはDianeのソフトウェア修正を確認した後、Dianeからのプルリクエストをクローズし、変更を受け入れます。プルリクエストを閉じることで、マージとビルドが行われ、新しいバージョンがデプロイできるようになります。事態を迅速に進めるために、リンダは HCL Accelerate のパイプラインビューに移動し、新バージョンがベースのユニットテストと静的スキャンを持つ展開可能なアーティファクトとしてリストアップされていることを確認します。Linda は、最新バージョンを開発環境にデプロイする準備ができており、そこでレベルの高いテストを受けることになります。

画像の説明

HCL Launchで作業するLindaは、最新のアプリケーション・バージョンがどの環境にもデプロイされていないことを確認することから始めます。HCL Launchのスナップショット・ビューで、Lindaは新バージョンがデプロイ可能であることを確認し、従うべきデプロイメント・プロセスを選択して開発環境へのデプロイを要求します。実行ログでは、Linda氏はデプロイメントプロセスのすべてのステップを発生時に確認し、出力ログにドリルダウンして各ステップの詳細を見ることができます。API の力を利用して、HCL Launch は HCL Accelerate にデータを送信してパイプライン ビューを更新し、最新のアプリケーション バージョンが開発環境に正常にデプロイされたことを示します。

画像の説明

エメラルド社のテスターであるティムは、ある変更が開発環境にデプロイされることを知り、新しい機能を検証したいと思っています。ティムはHCL OneTest Serverで作業を行い、必要なテストを立ち上げます。Emeraldプロジェクトのダッシュボードを確認すると、さまざまなテストタイプの7つのテストスイートが実行されたが、そのうちの1つのテストスイートが失敗したことがわかる。アラームを鳴らす前に、ティムは失敗したテストスイートのHCL OneTestテスト実行結果をチェックします。実行されたテストステップをスクロールし、テスト中に実行されたアプリケーション画面の画像を見て、ティムはアプリケーションが正常に動作しており、テストも正しく実行されているという結論に達した。問題は、テストデータにある。

ティムは、テストデータが悪いためにテストが失敗することに不満を感じており、さらにテストデータファイルの管理に無駄な時間を費やしていることにも不満を感じていました。そこで彼は、HCL OneTest Serverのテストデータ作成機能で作成した合成テストデータを使って実験を行い、テストを実行することにしました。この実験が成功すれば、長期的には時間の節約になり、Emerald社のテスト活動を新たなレベルで最適化することができるとTim氏は考えている。HCL OneTest Serverのデータ作成画面で、ここで提供されたスキーマが、必要なデータフィールドを正確に含むテストデータファイルを生成することを確認しました。テストデータ作成用のスキーマを使ってテストを再実行したところ、合格しました。

画像の説明

すべてのテストが行われているので、テスト実行結果は自動的にHCL Accelerateに送られます。Linda は HCL Accelerate の「洞察」ビューで品質レポートを介して最新のテストデータを得ることができ、Emerald の関係者にアプリケーション修正の最新情報を簡単に伝えることができます。Linda は、このコード変更をさまざまな環境を通じて本番環境に移行し、HCL Accelerate でその進捗を追跡することができます。

画像の説明

HCL Software DevOps ポートフォリオのいくつかのソリューションを使用して、Emerald の製品チームは以下のことができました。

  • 配信パイプラインへの新しい作業の迅速な導入
  • バリューストリーム全体での作業の迅速化
  • チーム内での効果的なコラボレーション
  • ソフトウェアの変更を効率的かつ正確にデプロイし、テストすることができる。
  • プロセス改善を取り入れ、パイプラインの最適化を図る
  • ビジネスのリスクを排除し、お客様を喜ばせる

このストーリーを実際にご覧になるには、以下のビデオをご覧ください。


DevOps 製品の連携ソリューションデモ

2021/5月/18 - 読み終える時間: ~1 分

HCL DevOps製品群を使ったリアルなデモを作成しました。

具体的には、HCL Compass、HCL Accelerate、HCL Launch、HCL OneTest を使用したものです。開発現場の実際をリアルに模した A Day in the Life 型のデモです。その分、17分弱とちょっと長めです。

こちらの解説記事もあわせてご覧ください。


DevOps に影響を与える技術トレンドと、それがあなたにとって何を意味するのか

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

Tech trends impacting DevOps, and what they mean for you の翻訳版です。


DevOps に影響を与える技術トレンドと、それがあなたにとって何を意味するのか

2021年2月15日

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

画像の説明

調査・アドバイザリー会社のガートナーは先日、DevOps に影響を与えるテクノロジートレンドのトップ 10 を概説したインフォグラフィックを発表しました(ガートナーのサブスクリプションをお持ちの方はこちらからご覧になれます)。このインフォグラフィックは、製品、プラットフォーム、およびガバナンスを改善するためのデジタルトランスフォーメーションの取り組みのロードマップとして機能します。私たち、HCL Software DevOps グループでは、これらのトレンドの実用的な適用と、なぜこれらのトレンドが重要なのかについて議論してきました。DevOps に影響を与える Gartner 社の技術トレンドの一部をご紹介します。


アジャイル製品の提供

Gartner は次のように書いています:「価値あるソフトウェアの継続的なデリバリーは、継続的なインテグレーション、継続的なテスト、機能フラグの管理、継続的なモニタリングを含むアジャイルプラクティスによって達成されます」。

HCL Software DevOps の見解: 適切な自動化ツールを適切に配置することは、組織にとってアジャイルな製品デリバリーの鍵となります。現在のソフトウェア・デリバリー・パイプラインにあるすべての手動プロセスを特定してください - 承認をメールで送信することから、テストを実行するタイミングをシステムに伝えることまで、すべてが適切なツールによって合理化され、改善されます。自動化できるプロセスが増えれば増えるほど、チームがビジネスの成果を出すことに集中できる時間が増えます。

このトレンドをサポートするツール:HCL LaunchHCL OneTestHCL AccelerateHCL Compass

画像の説明


継続的な品質維持、向上

ガートナー社は、「継続的品質とは、品質保証の概念を、機能的欠陥と非機能的欠陥からの予防、検出、回復可能性に至る一連の継続的な活動にまで拡大したものである」と述べています。

HCL Software DevOps は言う。繰り返し可能なデリバリー・パイプラインを確立することは、「Day 1 DevOps」ですが、継続的な品質を取り入れることは、成熟した「Day 2 DevOps」パイプラインの特長です。テストは、ソフトウェアのデリバリープロセスの特定の部分だけに限定されるべきではありません。品質を確保し、問題を早期に発見し、進歩を加速させるために、テストは開発全体を通して頻繁に行われるべきです。

このトレンドをサポートするツール:HCL OneTestHCL Accelerate


継続的なコンプライアンスの自動化

継続的なコンプライアンスの自動化は、コンプライアンス違反の発見と検出、ポリシーの実施とレポートの自動化、および脆弱性の修正により、リスクを軽減するのに役立ちます。

HCL Software DevOps の見解: これらのトレンドに気づいていますか?これらの取り組みの多くの原動力は、セキュリティ、コンプライアンス、品質です。成熟した DevOps 組織では、ガバナンスは誰かの仕事だとは言えません。コンプライアンスの確保は、組織内でのアクセス、役割、責任の割り当て方から始まります。DevOps パイプライン全体で使用するツールは、品質ゲートを強制し、コードとしてのポリシーを維持し、矛盾を報告するために連携する必要があります。ワークフロー全体にまたがることができる、実績のあるセキュリティとコンプライアンスの自動化ツールに投資することは、競争力を維持し、組織が次の大きなセキュリティ侵害の中心になることのないようにするための鍵となります。

このトレンドをサポートするツール: HCL Accelerate

画像の説明


バリューストリームエンジニアリング

ガートナーは、「ローカル最適化を避け、システムレベルのアプローチで顧客価値の流れを改善する」と述べています。

HCL Software DevOps の見解: このトレンドは、他のすべてのトレンドを網羅しています。このトレンドは、他のすべてのトレンドを網羅しています。バリューストリーム管理は、DevOps パイプラインのデータを統合し、パフォーマンスと戦略を全体的に見ることができるようにします。VSM は、データベースの DevOps 環境を構築し、信頼とコミュニケーションを中心とした組織文化を構築するための鍵となります。今、VSM のトレンドに乗っている組織は、あっという間に競合他社よりもはるかに先を行くことになるでしょう。あなたは取り残されている余裕がありますか?HCL Software DevOps の使命は、適切なデータを適切なタイミングで提供することで、製品チームがソフトウェア・デリバリー・パフォーマンスを向上させることです。

このトレンドをサポートするツール: HCL Accelerate

ガートナーのリストに追加するトレンドはありますでしょうか?コメントで教えてください。


このブログについて

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 技術者夜会 ニュース ノーツコンソーシアム バージョンアップ パフォーマンス ベータ ポートフォリオ ライセンス 互換性 出荷日 各種ご案内資料 研修