0

Web サービス API で特定の属性を取得できるかどうか疑問に思っていますか? エクスポート時に試してみIN202500.AttributesAttributes.Valueましたが、インベントリのすべての属性がリストされていました。また、属性が Inventory テーブルの [AttributeName]_Attributes としてテーブルに保存されていることにも気付きました。これを取得する方法はありますか?

これは私が使用しているコードです(属性を取得することを期待しています)

IN202500Content IN202500 = context.IN202500GetSchema();
context.IN202500Clear();

Command[] oCmd = new Command[] {
                      IN202500.StockItemSummary.ServiceCommands.EveryInventoryID,
                      IN202500.StockItemSummary.InventoryID,
                      IN202500.StockItemSummary.Description, 
                      IN202500.StockItemSummary.ItemStatus, 
                      IN202500.GeneralSettingsItemDefaults.ItemClass, 
                      IN202500.GeneralSettingsItemDefaults.LotSerialClass,
                      new Field  {  
                          ObjectName = IN202500.StockItemSummary.InventoryID.ObjectName,
                          FieldName = "BARCODE_Attributes"}, 
                      new Field  {  
                          ObjectName = IN202500.StockItemSummary.InventoryID.ObjectName, 
                          FieldName = "DfltReceiptLocationID"},   
                      new Field  {  
                          ObjectName = IN202500.StockItemSummary.InventoryID.ObjectName, 
                          FieldName = "LastModifiedDateTime"}   
                      };

Filter[] oFilter = new Filter[] {
                      new Filter 
                      {
                          Field = new Field {
                              ObjectName = IN202500.StockItemSummary.InventoryID.ObjectName,
                              FieldName = "LastModifiedDateTime"},
                          Condition = FilterCondition.Greater,
                          Value = SyncDate
                       }
                    };

String[][] sReturn = context.IN202500Export(oCmd, oFilter, 0, true, false);

しかし、返される Attribute フィールドは空の文字列です。ありがとう、G

4

2 に答える 2

1

画面のプライマリ ビューに追加された動的フィールドを利用して、特定の属性値を取得できます。これらのフィールドは WSDL スキーマには表示されないため、Field オブジェクトを作成して Export 関数に渡す必要があります。

ネイティブ オブジェクト/ネイティブ フィールド名の列を表示して、エクスポート シナリオからフィールド名とオブジェクト名を調べました。結果の Export 呼び出しは次のようになります。

        var result = screen.Export(new IN202500.Command[] { 
            new IN202500.Value() { LinkedCommand = schema.StockItemSummary.InventoryID, Value = "Z730P00073"},
            schema.StockItemSummary.InventoryID,
            schema.StockItemSummary.Description,
            new IN202500.Field { FieldName = "COLOR_Attributes", ObjectName = "Item"},
            new IN202500.Field { FieldName = "HWMAN_Attributes", ObjectName = "Item"},
        }, null, 0, true, true);

このコードは、特定の在庫品目 (Z730P00073) の 2 つの属性値 (COLOR および HWMAN 属性) を取得します。結果変数には 2 次元配列が含まれています。配列から結果を取得する際にサポートが必要な場合はお知らせください。

于 2015-01-26T14:37:16.967 に答える
0

次の例は、アイテムを追加し、属性と画像を設定する方法を示しています:

        byte[] filedata;
        using (System.IO.FileStream file = System.IO.File.Open(@"C:\1.jpg", System.IO.FileMode.Open))
        {
            filedata = new byte[file.Length];
            file.Read(filedata, 0, filedata.Length);
        }

        Random rnd = new Random();  
        string inventoryID = "CPU0000" + rnd.Next(100).ToString();
        context.IN202500Clear();            
        IN202500result = context.IN202500Submit(
            new Command[] 
            {
                IN202500.Actions.Insert,
                new Value { Value = inventoryID, LinkedCommand = IN202500.StockItemSummary.InventoryID },
                new Value { Value = inventoryID, LinkedCommand = IN202500.StockItemSummary.Description },
                new Value { Value = "CPU", LinkedCommand = IN202500.GeneralSettingsItemDefaults.ItemClass, Commit = true },
                new Value { Value = "TAXABLE", LinkedCommand = IN202500.GeneralSettingsItemDefaults.TaxCategory, Commit = true },                    
                //attributes - pairs 
                new Value { Value = "FREQUENCY", LinkedCommand = IN202500.AttributesAttributes.Attribute },
                new Value { Value = "1400", LinkedCommand = IN202500.AttributesAttributes.Value, Commit = true },
                new Value { Value = "CORE", LinkedCommand = IN202500.AttributesAttributes.Attribute },
                new Value { Value = "2 CORES", LinkedCommand = IN202500.AttributesAttributes.Value, Commit = true },
                new Value { Value = "INTGRAPH", LinkedCommand = IN202500.AttributesAttributes.Attribute },
                new Value { Value = "True", LinkedCommand = IN202500.AttributesAttributes.Value, Commit = true },
                //image
                new Value { Value = Convert.ToBase64String(filedata), FieldName = "1.jpg", LinkedCommand = IN202500.StockItemSummary.ServiceCommands.Attachment }, //uploads
                new Value { Value = "1.jpg", LinkedCommand = IN202500.Attributes.ImageUrl }, //sets as an item picture
                IN202500.Actions.Save,
                //return the result
                IN202500.StockItemSummary.InventoryID
        });
于 2015-01-23T18:13:54.513 に答える