1. スクリプティングSDK

ジョブの管理

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

スクリプティングSDKを使用してジョブ (つまり、ジョブとそれに関連付けられたターゲットの作成、更新、および削除操作) を管理するには、次の手順を実行します。

  1. ターゲットを指定せずにジョブエンティティを作成し、その状態をCreatedに設定します。

  2. ジョブ記述エンティティを作成します。

  3. すべてのジョブ ターゲットは、Jobs APIを使用して作成します。ターゲットは自動的にジョブにリンクされます。

  4. ジョブの状態をPendingに更新します。

これらのステップは、1つのターゲットまたは複数のターゲットを持つジョブに使用します。

メモ

これらの手順は、Web SDKまたはREST APIを使用してジョブを管理する場合にも適用されます。

次のスニペットは、スクリプティングSDKを使用してジョブを管理する方法の例を示しています。

手記

代わりにWeb SDKを使用するには、次のコードでMClientclientに置き換えます。

var jobId = await CreateJobEntityAsync();

var jobDescriptionId = await CreateJobDescriptionEntityAsync(jobId);

var assets = [12345, 67890];
foreach (var assetd in asssets)
{
    var targetId = await CreateTargetEntityAsync(asset, jobId);
}

await UpdateJobEntityAsync(jobdId);

async Task<long> CreateJobEntityAsync() 
{
    var newJobEntity = await MClient.EntityFactory.CreateAsync("M.Job");

    newJobEntity.SetPropertyValue("Job.State", "Created");
    ... // other properties setup

    return await MClient.Entities.SaveAsync(newJobEntity);
}

async Task<long> UpdateJobEntityAsync(long jobId) 
{
    var job = await MClient.Enties.GetAsync(jobId);
    
    newJobEntity.SetPropertyValue("Job.State", "Pending");
    
    return await MClient.Entities.SaveAsync(job);
}

async Task<long> CreateJobDescriptionEntityAsync(long jobId)
{
    var newjobDescriptionEntity = await MClient.EntityFactory.CreateAsync("M.JobDescription");

    newjobDescriptionEntity.SetPropertyValue("Job.ConfigurationJob.Configuration", JToken.FromObject(new
        {
            some = "configuration"
        }));
    ... // other properties setup

    return await MClient.Jobs.SaveDescriptionAsync(jobId, newjobDescriptionEntity);
}

async Task<long> CreateTargetEntityAsync(long assetId, long jobId)
{
    var newTargetEntity = await MClient.EntityFactory.CreateAsync("M.Target");

    newTargetEntity.SetPropertyValue("Target.Location", assetId.ToString());
    newTargetEntity.SetPropertyValue("Target.State", "Pending");
    newTargetEntity.SetPropertyValue("Target.Condition", "Pending");
    ... // other properties setup

    return await MClient.Jobs.SaveTargetAsync(jobId, newTargetEntity);
}
この記事を改善するための提案がある場合は、 お知らせください!