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

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

新しいジョブ クライアントを利用するためにコードを更新するのに役立つように、いくつかの例を次に示します。

インポートジョブとロードジョブの説明をループする

次の例は、Entitiesクライアントを使用してすべてのインポート ジョブをループ処理し、ジョブの説明をロードする例です。

...
var query = Query.CreateQuery(entities =>
  from e in entities
  where e.DefinitionName == "M.Job"
    && e.Property("Job.Type") == "Import"
  orderby e.CreatedOn descending
  select e);
var jobs = await MClient.Querying.QueryAsync(query);
foreach (var job in jobs.Items)
{
  var jobDescriptionRelation = await job.GetRelationAsync("JobToJobDescription");
  var jobDescriptionId = jobDescriptionRelation?.GetIds()?.FirstOrDefault();
  if (jobDescriptionId is not null)
  {
    var jobDescription = await MClient.Entities.GetAsync(jobDescriptionId.Value);
    ...
  }
}
...

ジョブ クライアントを使用するには、次のようにコードを更新します。

...
var query = Query.CreateQuery(entities =>
  from e in entities
  where e.DefinitionName == "M.Job"
    && e.Property("Job.Type") == "Import"
  orderby e.CreatedOn descending
  select e);
var jobs = await MClient.Querying.QueryAsync(query);
foreach (var job in jobs.Items)
{
  var jobDescription = await MClient.Jobs.GetDescriptionAsync(job.Id);
  ...
}
...

ジョブとそのターゲットをロードする

次に、Entitiesクライアントを使用してジョブとそのターゲットをロードする例を示します。

...
var job = await MClient.Entities.GetAsync(jobId);
var jobTargetsRelation = await job.GetRelationAsync("JobToTarget");
var targetIds = jobTargetsRelation?.GetIds();
if (targetIds is not null && targetIds.Any())
{
  var targets = await MClient.Entities.GetManyAsync(targetIds);
  ...
}
...

ジョブ クライアントを使用するには、次のようにコードを更新します。

...
var result = await MClient.Jobs.GetTargetsAsync(jobId);
var targets = result.Items;
...

特定のジョブの失敗という条件を持つターゲットをクエリする

次の例は、エンティティ クライアントを使用して、ジョブに特定のジョブIDがある条件Failureでターゲットをクエリする例です。

...
var query = Query.CreateQuery(entities =>
    from e in entities
    where e.DefinitionName == "M.Target"
      && e.Parent("JobToTarget") == jobId
      && e.Property("Target.Condition") == "Failure"
    select e);
var result = await MClient.Querying.QueryAsync(query);
var targets = result.Items;
...

ジョブ クライアントを使用するには、次のようにコードを更新します。

...
var query = new JobTargetQuery(jobId)
{
    Condition = "Failure"
};
var result = await MClient.Jobs.GetTargetsAsync(query);
var targets = result.Items;
...

ジョブの説明を作成する

次に、Entitiesクライアントを使用してジョブの説明を作成する例を示します。

...
var description = await _client.EntityFactory.CreateAsync("M.JobDescription");
description.SetPropertyValue("Job.Data", JToken.FromObject(new
{
    some = "data"
}));
description.GetRelation<IChildToOneParentRelation>("JobToJobDescription").Parent = jobId;

var descriptionId = await MClient.Entities.SaveAsync(description);
...

ジョブ クライアントを使用するには、次のようにコードを更新します。

...
var description = await _client.EntityFactory.CreateAsync("M.JobDescription");
description.SetPropertyValue("Job.Data", JToken.FromObject(new
{
    some = "data"
}));

var descriptionId = await _client.Jobs.SaveDescriptionAsync(jobId, description);
...

ジョブ ターゲットの作成

次に、Entitiesクライアントを使用してジョブ・ターゲットを作成する例を示します。

...
IEntity target = await _client.EntityFactory.CreateAsync("M.Target");
target.SetPropertyValue("Target.Data", JToken.FromObject(new
{
    same = "data"
}));
target.GetRelation<IChildToOneParentRelation>("JobToTarget").Parent = jobId;

var targetId = await _client.Entities.SaveAsync(target);
...

ジョブ クライアントを使用するには、次のようにコードを更新します。

...
IEntity target = await _client.EntityFactory.CreateAsync("M.Target");
target.SetPropertyValue("Target.Data", JToken.FromObject(new
{
    same = "data"
}));

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