クエリから標準ウィザードを使用して、AX2009でAIFWebサービスを作成しました。これで、アップデートを除いて、すべてが機能しているように見えます。「decimal」タイプのフィールドを書き戻すことができません。ただし、「文字列」フィールドは問題なく機能します。
以下のコードを見ると、フィールド「PickQty」は小数であり、機能しません。「PickQtyMob」は文字列フィールドであり、機能します。
PickQtyのみを更新する場合、AXのサービスから更新を取得しますが、parmメソッドでは更新しません。
また、エラーメッセージや例外は表示されません。
更新のコードスニペット:try {MOBBatchPickServiceUpdateRequest updateRequest = new MOBBatchPickServiceUpdateRequest(); updateRequest.MOBBatchPick = new AxdMOBBatchPick(); updateRequest.MOBBatchPick.BatchPick = new MOBBatchPickService.AxdEntity_BatchPick [1]; updateRequest.MOBBatchPick.BatchPick [0] = new MOBBatchPickService.AxdEntity_BatchPick();
updateRequest.EntityKeyList = new MOBBatchPickService.EntityKey[mobBatchPick.BatchPick.Length];
for (i = 0; i < mobBatchPick.BatchPick.Length; i++)
{
updateRequest.EntityKeyList[i] = new MOBBatchPickService.EntityKey();
updateRequest.EntityKeyList[i].KeyData = new MOBBatchPickService.KeyField[1];
updateRequest.EntityKeyList[i].KeyData[0] = new MOBBatchPickService.KeyField();
updateRequest.EntityKeyList[i].KeyData[0].Field = "PickRequestNum";
updateRequest.EntityKeyList[i].KeyData[0].Value = mobBatchPick.BatchPick[i].PickRequestNum;
mobBatchPick.BatchPick[i].PickQty = mobBatchPick.BatchPick[i].PickQty; // decimal: Doesn't work
mobBatchPick.BatchPick[i].PickQtyMob = mobBatchPick.BatchPick[i].PickQty.ToString(); // string: Works
mobBatchPick.BatchPick[i].action = MOBBatchPickService.AxdEnum_AxdEntityAction.update;
}// for
updateRequest.MOBBatchPick = mobBatchPick;
batchPickClient.update(updateRequest);
}
catch (Exception _exception)
{
MessageBox.Show(_exception.ToString());
}