1

eConnect を使用して、.NET アプリケーションを Dynamics GP に接続していました。これは、Dynamics GP でアイテムを作成/更新するための C# eConnect コードです。

taUpdateCreateItemRcd GpLineItem = new taUpdateCreateItemRcd();
GpLineItem.ITEMNMBR = "iPartNumber";
GpLineItem.ITEMDESC = "iDescription";
GpLineItem.CURRCOST = 50.65;
GpLineItem.ITMCLSCD = "classID";
GpLineItem.ITEMTYPE = 1;
GpLineItem.Purchase_Tax_Options = 2;
GpLineItem.UOMSCHDL = "EACH";
GpLineItem.UpdateIfExists = 1;

IVItemMasterType ivMasterType = new IVItemMasterType();
ivMasterType.taUpdateCreateItemRcd = GpLineItem;

IVItemMasterType[] ivMasterTypeArray = { ivMasterType };
eConnectType eConnect = new eConnectType();
eConnect.IVItemMasterType = ivMasterTypeArray;

// Serialize the master vendor type in memory.
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xmlSerializer = new XmlSerializer(eConnect.GetType());


// Serialize the eConnectType.
xmlSerializer.Serialize(memoryStream, eConnect);

// Reset the position of the memory stream to the start.              
memoryStream.Position = 0;

// Create an XmlDocument from the serialized eConnectType in memory.
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(memoryStream);
memoryStream.Close();

// Call eConnect to process the XmlDocument.
eConnectMethods.CreateEntity(connectionString, xmlDocument.OuterXml);

xmlDocument を確認したところ、以下のフィールドしかありません。

<?xml version="1.0"?><eConnect xmlns:xsi="www.w3.org/.../XMLSchema-instance" xmlns:xsd="www.w3.org/.../XMLSchema">
<IVItemMasterType>
    <eConnectProcessInfo xsi:nil="true" />
    <taRequesterTrxDisabler_Items xsi:nil="true" />
    <taUpdateCreateItemRcd>
        <ITEMNMBR>iPartNumber</ITEMNMBR>
        <ITEMDESC>iDescription</ITEMDESC>
        <ITMCLSCD>RETAIL</ITMCLSCD>
        <UOMSCHDL>EACH</UOMSCHDL>
    </taUpdateCreateItemRcd>
    <taUpdateCreateItemCurrencyRcd_Items xsi:nil="true" />
    <taIVCreateItemPriceListLine_Items xsi:nil="true" />
    <taIVCreateItemPriceListHeader xsi:nil="true" />
    <taItemSite_Items xsi:nil="true" />
    <taCreateItemVendors_Items xsi:nil="true" />
    <taCreateKitItemRcd_Items xsi:nil="true" />
    <taCreateInternetAddresses_Items xsi:nil="true" />
</IVItemMasterType>
</eConnect>

コードの何が問題なのかわかりません。これで私を助けてください。皆様のご協力に感謝いたします。ありがとう。

4

2 に答える 2

0

次の行を追加する必要があると思います: GpLineItem.CURRCOSTSpecified = true;

eConnect では、多くの値を使用してこれを行う必要があります。

于 2015-06-09T12:41:57.823 に答える
0

回答者:ティム・ワパット

いくつかのフィールドを提供していることを「指定」する必要があります。現在のコストはその 1 つです。

eConnect Programmers Guide のクラスの説明を参照してください (CURRCOSTSpecified を検索してください)。

次のようなものになると思います:

GpLineItem.CURRCostSpecified = true;

taUpdateCreateItemRcd のクラス メンバーを設定するコード内の別の行として。

私たちは皆、いつかそれをやった...

于 2015-06-09T12:56:26.920 に答える