2 つの K2 SmartObjects があります。SmartObjectA はオブジェクトのリストを取得します。SmartObjectB は、SmartObjectA (基本スマート オブジェクト) から返されたリストを入力パラメーターとして使用してカスタム create メソッドを実行するカスタム SmartObject です。
カスタム サービス ブローカーのコード ビハインドでは、リストの値を逆シリアル化する必要があります。
K2 で受信したリストを create メソッドの入力パラメータとして渡すにはどうすればよいですか? 複数値のプロパティを使用し、それに SmartObjectA プロパティを割り当てています。
K2 が複数値をシリアル化するために使用する形式と、リストを正しくマップできるように入力値の形式を確認するにはどうすればよいですか?
SmartObject A のプロパティ:
Name - SOType.Text,
ID - SOType.Number,
Date - SOType.Date,
Description - SOType.Text
SmartObject B - SmartObjectA のリストが入力されるプロパティ:
[Property("LineItems", SoType.MultiValue, "LineItems", "The line items.")]
public string LineItems
{
get
{
return _lineItems;
}
set { _lineItems = value; }
}
SmartObjectB の入力プロパティと Create メソッド:
[SourceCode.SmartObjects.Services.ServiceSDK.Attributes.Method("Create",
MethodType.Create,
"Create",
"Description",
new string[] { "CustomerId", "Date", "DueDate" },
new string[] { "CustomerId", "Date", "DueDate", "LineItems" },
new string[] { "TaxInvoiceId" })]
public TaxInvoice Create()
{
try
{
..deserialize here
}
}