0

AR301000 画面を使用して、API を介して顧客支払い方法を作成しました。しかし、販売注文に支払い方法を追加しようとすると、エラーが発生しました。これが私の現在のコードです。

    SO301000Content SO301000 = context.SO301000GetSchema();
    context.SO301000Clear();
    SO301000Content[] SO30100content = context.SO301000Submit
    (
        new Command[]
            {
                //add header info
                new Value { Value = "SO", LinkedCommand = SO301000.OrderSummary.OrderType },
                new Value { Value = "000129", LinkedCommand = SO301000.OrderSummary.OrderNbr },
                //add payment
                new Value { Value = "VISA", LinkedCommand = SO301000.PaymentSettings.PaymentMethod },
                new Value { Value = "VISA:****-****-****-7261", LinkedCommand = SO301000.PaymentSettings.CardAccountNo },

                SO301000.Actions.Save
            }
    );

実行しようとすると、次のエラーが発生します。

System.Web.Services.Protocols.SoapException: サーバーは要求を処理できませんでした。---> PX.Data.PXException: エラー #12: 'Sales Order' レコードの更新で 1 つ以上のエラーが発生しました。レビューしてください。エラー: 「カード/口座番号」が空でない可能性があります。

更新する必要がある別のカード/口座番号フィールドはありますか?

4

1 に答える 1

0
    You have to use different approach

    SO301000Content orderSchema = context.SO301000GetSchema();
    var commands = new Command[]
    {
        new Value 
        {
            Value = orderType, 
            LinkedCommand = orderSchema.OrderSummary.OrderType 
        },
        new Value 
        {
            Value = orderNbr, 
            LinkedCommand = orderSchema.OrderSummary.OrderNbr 
        },
        new Value 
        {
            Value = "TOKENCC", 
            LinkedCommand = orderSchema.PaymentSettings.PaymentMethod 
        },
        new Value 
        {
            Value = "True", 
            LinkedCommand = orderSchema.PaymentSettings.NewCard 
        },
new Value { Value = "VISA", LinkedCommand = orderSchema.PaymentSettings.PaymentMethod },

//below you have to fill attributes (pairs key-value)
        new Key
        {
            ObjectName = orderSchema.PaymentSettingsCardInfoDescription.Description.ObjectName,
            FieldName = orderSchema.PaymentSettingsCardInfoDescription.Description.FieldName,
            Value = "='CCDNUM'"
        },
        new Value 
        {
            Value = "4321111111111234", 
            LinkedCommand = orderSchema.PaymentSettingsCardInfoDescription.Value 
        },

        new Key
        {
            ObjectName = orderSchema.PaymentSettingsCardInfoDescription.Description.ObjectName,
            FieldName = orderSchema.PaymentSettingsCardInfoDescription.Description.FieldName,
            Value = "='CVV'"
        },
        new Value 
        {
            Value = "321", 
            LinkedCommand = orderSchema.PaymentSettingsCardInfoDescription.Value 
        },


        new Key
        {
            ObjectName = orderSchema.PaymentSettingsCardInfoDescription.Description.ObjectName,
            FieldName = orderSchema.PaymentSettingsCardInfoDescription.Description.FieldName,
            Value = "='EXPDATE'"
        },
        new Value 
        {
            Value = "01/2019", 
            LinkedCommand = orderSchema.PaymentSettingsCardInfoDescription.Value 
        },

        new Key
        {
            ObjectName = orderSchema.PaymentSettingsCardInfoDescription.Description.ObjectName,
            FieldName = orderSchema.PaymentSettingsCardInfoDescription.Description.FieldName,
            Value = "='NAMEONCC'"
        },
        new Value 
        {
            Value = "01/2019", 
            LinkedCommand = orderSchema.PaymentSettingsCardInfoDescription.Value 
        },

        orderSchema.Actions.Save
    };
于 2014-11-21T12:49:29.000 に答える