1

Accounts エンティティ レコード、Contacts エンティティ レコードを C# で作成する例を見てきました。C#(.net) コードを使用して CRM でサービス レコードを作成する方法を知りたいと思いました。

例:サービスエンティティ ビューに "Plumbing service" レコードが既にあります。そのため、C# コードを使用してサービス エンティティに新しいレコードを作成したいと考えていました (早期または遅延バインディングは関係ありません)。

誰かがコードでこれを手伝ってくれますか?

4

1 に答える 1

4

このサービスをコードから作成する場合、かなりの XML が必要です。さらに、Service を作成する前に、ResourceSpec と ConstraintBasedGroup を作成する必要があります。

最初に ConstraintBasedGroup を作成します。

var bu = context.BusinessUnitSet.First().ToEntityReference();

var cbg = new ConstraintBasedGroup
{
    BusinessUnitId = bu,
    Name = "CBG1",
    Constraints = "<Constraints><Constraint><Expression><Body>false</Body><Parameters><Parameter name=\"resource\"/></Parameters></Expression></Constraint></Constraints>"
};
var cbgId = OrganizationService.Create(cbg);

次に、ResourceSpec を作成します。

var resSpec = new ResourceSpec
{
    BusinessUnitId = bu,
    Name = "RS1",
    RequiredCount = 1,
    ObjectiveExpression = "<Expression><Body>udf\"Random\"(factory,resource,appointment,request,leftoffset,rightoffset)</Body><Parameters><Parameter name=\"factory\"/><Parameter name=\"resource\"/><Parameter name=\"appointment\"/><Parameter name=\"request\"/><Parameter name=\"leftoffset\"/><Parameter name=\"rightoffset\"/></Parameters><Properties EvaluationInterval=\"P0D\" evaluationcost=\"0\"/></Expression>",
    GroupObjectId = cbgId
};
var resSpecId = OrganizationService.Create(resSpec);

最後に、サービスを作成できます。

var svc = new Service
{
    Name = "Service1",
    Granularity = "FREQ=MINUTELY;INTERVAL=15",
    ResourceSpecId = new EntityReference(ResourceSpec.EntityLogicalName, resSpecId),
    InitialStatusCode = new OptionSetValue(0),
    Duration = 15
};
OrganizationService.Create(svc);

必要な XML の特定の形式について疑問がある場合は、CRM の UI を使用して同様のものを作成することをお勧めします。例で使用した XML は、CRM が生成するデフォルトの XML とほとんど同じです。

于 2016-04-01T13:24:54.903 に答える