Как обновить заказы на продажу в acumatica с помощью API

Я не могу обновлять свои заказы на продажу в acumatica с помощью SOAP API. Всякий раз, когда я пытаюсь сэкономить с помощью ORDERNBR, он сохраняет новый заказ.

Это мой код:

$Customer = new Value();
        $Customer->Value = 'C000006';//$data['Customer'];
        $Customer->FieldName = 'CustomerID';
        $Customer->ObjectName = 'Document';

        $Terms = new Value();
        $Terms->Value = 'NET';
        $Terms->FieldName = 'TermsID';
        $Terms->ObjectName = 'CurrentDocument: 1';

        $OrderType = new Value();
        $OrderType->Value = $data['OrderType'];
        $OrderType->FieldName = 'OrderType';
        $OrderType->ObjectName = 'Document';

        $Date = new Value();
        $Date->Value = $data['Date'];
        $Date->FieldName = 'OrderDate';
        $Date->ObjectName = 'Document';

        $RequestedOn = new Value();
        $RequestedOn->Value = $data['RequestedOn'];
        $RequestedOn->FieldName = 'RequestDate';
        $RequestedOn->ObjectName = 'Document';

        $CustomerOrder = new Value();
        $CustomerOrder->Value = $data['CustomerOrder'];
        $CustomerOrder->FieldName = 'CustomerOrderNbr';
        $CustomerOrder->ObjectName = 'Document';

        $Status = new Value();
        $Status->Value = $data['Status'];
        $Status->FieldName = 'Status';
        $Status->ObjectName = 'Document';


        $Currency = new Value();
        $Currency->Value = $data['Currency'];
        $Currency->FieldName = 'CuryID';
        $Currency->ObjectName = 'Document';

        $nbr = new Value();
        $nbr->Value = '100064';
        $nbr->FieldName = 'OrderNbr';
        $nbr->ObjectName = 'Document';
        //$nbr->LinkedCommand = $SO301000Content->GetSchemaResult->OrderSummary->OrderNbr;

        //$SO301000Content->GetSchemaResult->OrderSummary->OrderNbr->Value = '100064';
            //echo '<pre>';print_r($SO301000Content->GetSchemaResult->DocumentDetails->ServiceCommands);die;
        $context->SO301000Clear();
        $commands = array(
                            $Customer,
                            $Terms,
                            $OrderType,
                            $Date,
                            $RequestedOn,
                            $Status,
                            $CustomerOrder,
                            $Currency,
                            $nbr,
                            //$SO301000Content->GetSchemaResult->OrderSummary->CopyOrder,
                            //$SO301000Content->GetSchemaResult->OrderSummary->OrderNbr,

                        );
$commands[] = $SO301000Content->GetSchemaResult->Actions->Insert;
$commands[] = $SO301000Content->GetSchemaResult->OrderSummary->OrderNbr;
        //echo '<pre>';print_r($commands);die;
        $arr = array(
                    'commands'=>$commands,
                );
        $cus = $context->__soapCall('SO301000Submit', array($arr));

person Vishal Kamal    schedule 12.02.2016    source источник


Ответы (1)


OrderType и OrderNbr должны быть установлены первыми в вашем списке команд, таким образом Acumatica сначала перейдет к записи, а затем обновит ее.

person Serg Rogovtsev    schedule 15.02.2016