tutorial
このチュートリアルでは、Asprova My Schedule / WS の公開APIを Nodejs 環境から利用して、Asprovaで立案された計画から作業の情報を取得し (1)、それらに対して実績を入力する (2) 流れを確認します 。
/api/asprova/v0/projects/{projectId}/schedule/operations/api/asprova/v0/projects/{projectId}/transactions/results
前提
- Javascript の知識
- Nodejs の実行環境
- Asprova (ver.18.0 以降) がインストールされていること
- Asprova My Schedule (ver.26.1.4 以降) のセットアップが済んでいること。
準備
Asprova My Schedule サーバはライセンス認証されていない状態か、デモ版ライセンスで認証されている状態にしておく必要があることに注意してください。 Asprova My Schedule サーバが正式版でライセンス認証されている場合、ライセンス上の制限により公開APIの利用に失敗する場合があります。
Asprova My Schedule にアクセスし、新しいプロジェクト API Test をフリープランのプロジェクトとして作成します。
作成したプロジェクトに割り当てられたIDを控えておきます。
API Test プロジェクトの詳細設定画面を開き、UI設定の「作業テーブル」と「資源ガントチャート」のチェックを入れ保存します。
APIの利用上必要なのは作業テーブルのアップロードのみですが、実績の入力状況を確認するため、資源ガントチャートもアップロードして見られる状態にしておきましょう。
このチュートリアルでは、アップロードするAruファイルは標準サンプルの「1-1 充填」(as1.aru) にします。
as1.aruをAsprovaで開き、My Schedule 連携設定を行います。
連携先のプロジェクトには API Test を選択し、作業テーブルをアップロードするよう設定します。
このとき、作業テーブル・資源ガントチャートのスタイルにはどちらも「標準」スタイルを選びます。
また、アップロード期間には「割付開始日時+14日」を指定してください。
その後、My Scheduleにアップロードを行ってください。
API経由での作業テーブルの取得
const serverLocation = "http://localhost"
const projectId = "(API Test project's ID)"
const operations = await fetch(serverLocation + `/api/asprova/v0/projects/${projectId}/schedule/operations`, {
headers: {
"x-asprova-ws-api-key": "4@bBbq7V#53Jvq9Wfcm" // this is the default API key
}
}).then(res => res.json())
console.log(operations.find(op => op.Work_Code === "2:10"))
コード「2:10」の作業の内容が表示されます。含まれるプロパティは、「標準」スタイルで指定されているものです。
{
"Work_Code": "2:10",
"Work_Bom": "材料混合",
"Work_OperationOutMainItem": "製品A-10",
"Work_OperationOutMainItemQty": "30",
"Work_OperationMainRes": "混合1",
"Work_OperationProductionStartTime": "2028/06/01 08:10:00",
"Work_OperationProductionEndTime": "2028/06/01 15:43:00",
"Work_OperationProductionTime": "7h33m",
"Work_OperationSetupStartTime": "2028/06/01 08:00:00",
"Work_OperationSetupEndTime": "2028/06/01 08:10:00",
"Work_OperationSetupTime": "10m",
"Work_OperationTeardownStartTime": "2028/06/01 15:43:00",
"Work_OperationTeardownEndTime": "2028/06/01 15:53:00",
"Work_OperationTeardownTime": "10m",
"Work_LeadTime": "7h53m",
"Work_StartTime": "2028/06/01 08:00:00",
"Work_EndTime": "2028/06/01 15:53:00",
"Work_TotalCalculatedEST": "2028/06/01 00:00:00",
"Work_TotalCalculatedLET": "2028/06/01 15:43:00",
"Work_Earliness": "",
"Work_Lateness": "0s",
"Work_IsAssigned": "1",
"Work_AssignmentDirection": "F",
"Work_Status": "A",
"Work_ResultStartTime": "",
"Work_ResultEndTime": "",
"Work_ResultQty": "",
"Work_PrevOperation": "",
"Work_NextOperation": "2:20"
}
My Schedule 上での実績の入力
My Scheduleで API Test プロジェクトの資源ガントチャートを開き、2:10 を選んでタイムライン上から「開始」「終了」のボタンを順に押して、作業を完了にします。
再度APIから作業テーブルを取得すると、作業のステータスや実績開始日時が入力されています。
{
"Work_Code": "2:10",
"Work_Bom": "材料混合",
"Work_OperationOutMainItem": "製品A-10",
"Work_OperationOutMainItemQty": "30",
"Work_OperationMainRes": "混合1",
"Work_OperationProductionStartTime": "2028/06/01 08:10:00",
"Work_OperationProductionEndTime": "2028/06/01 15:43:00",
"Work_OperationProductionTime": "7h33m",
"Work_OperationSetupStartTime": "2028/06/01 08:00:00",
"Work_OperationSetupEndTime": "2028/06/01 08:10:00",
"Work_OperationSetupTime": "10m",
"Work_OperationTeardownStartTime": "2028/06/01 15:43:00",
"Work_OperationTeardownEndTime": "2028/06/01 15:53:00",
"Work_OperationTeardownTime": "10m",
"Work_LeadTime": "7h53m",
"Work_StartTime": "2028/06/01 08:00:00",
"Work_EndTime": "2028/06/01 15:53:00",
"Work_TotalCalculatedEST": "2028/06/01 00:00:00",
"Work_TotalCalculatedLET": "2028/06/01 15:43:00",
"Work_Earliness": "",
"Work_Lateness": "0s",
"Work_IsAssigned": "1",
"Work_AssignmentDirection": "F",
"Work_Status": "B",
"Work_ResultStartTime": "2026/03/06 10:08:37",
"Work_ResultEndTime": "2026/03/06 10:08:38",
"Work_ResultQty": "",
"Work_PrevOperation": "",
"Work_NextOperation": "2:20"
}
API経由での実績の入力
次に、API経由で実績を入力してみましょう。
「2:20」の作業のステータスを着手済みに、実績数量を10に設定してみます。
const serverLocation = "http://localhost"
const projectId = "(API Test project's ID)"
const response = await fetch(serverLocation + `/api/asprova/v0/projects/${projectId}/transactions/results`, {
method: "POST",
body: JSON.stringify({
"2:20": {
Work_Status: "T",
Work_ResultQty: 10
}
}),
headers: {
"Content-Type": "application/json",
"x-asprova-ws-api-key": "4@bBbq7V#53Jvq9Wfcm" // this is the default API key
}
})
console.log(response.ok)
「2:20」の作業の状態を /api/asprova/v0/projects/{projectId}/schedule/operations を使って取得してみると、以下になります。
{
"Work_Code": "2:20",
"Work_Bom": "充填",
"Work_OperationOutMainItem": "製品A-20",
"Work_OperationOutMainItemQty": "30",
"Work_OperationMainRes": "充填1",
"Work_OperationProductionStartTime": "2028/06/01 17:43:00",
"Work_OperationProductionEndTime": "2028/06/02 08:07:00",
"Work_OperationProductionTime": "5h24m",
"Work_OperationSetupStartTime": "2028/06/01 15:43:00",
"Work_OperationSetupEndTime": "2028/06/01 17:43:00",
"Work_OperationSetupTime": "2h",
"Work_OperationTeardownStartTime": "",
"Work_OperationTeardownEndTime": "",
"Work_OperationTeardownTime": "",
"Work_LeadTime": "16h24m",
"Work_StartTime": "2028/06/01 15:43:00",
"Work_EndTime": "2028/06/02 08:07:00",
"Work_TotalCalculatedEST": "2028/06/01 17:43:00",
"Work_TotalCalculatedLET": "2028/06/02 08:07:00",
"Work_Earliness": "0s",
"Work_Lateness": "0s",
"Work_IsAssigned": "1",
"Work_AssignmentDirection": "F",
"Work_Status": "T",
"Work_ResultStartTime": "",
"Work_ResultEndTime": "",
"Work_ResultQty": 10,
"Work_PrevOperation": "2:10",
"Work_NextOperation": "2:30"
}