Acumatica submitresult

Я делаю демонстрационный скрипт для создания нового заказа на продажу с помощью PHP. Вот мой код:

$acumatica = new AcumaticaGate($this->acuAccName,$this->acuAccPass,$this->acuServiceUrl);

        $SO301000GetSchema = $acumatica->client->SO301000GetSchema(new ObjectDocument\GetSchema());
        $SO301000GetSchema = $SO301000GetSchema->GetSchemaResult;
        $acumatica->client->SO301000Clear(new ObjectDocument\Clear());

        $SO301000Submit = new ObjectDocument\Submit();

        $SO301000Submit->commands = array
        (
            $acumatica->prepareValue("SO", $SO301000GetSchema->OrderSummary->OrderType),
            $acumatica->prepareValue("<NEW>", $SO301000GetSchema->OrderSummary->OrderNbr),
            $acumatica->prepareValue("ACTIVESTAF", $SO301000GetSchema->OrderSummary->Customer),

            $SO301000GetSchema->DocumentDetails->ServiceCommands->NewRow,
            $acumatica->prepareValue("AALEGO500", $SO301000GetSchema->DocumentDetails->InventoryID, true),
            $acumatica->prepareValue("HQ", $SO301000GetSchema->DocumentDetails->Branch),

            $SO301000GetSchema->Actions->Save
        );
        $result = $acumatica->client->SO301000Submit($SO301000Submit);
        print_r($result);

Все в порядке, он вставляет новый заказ на продажу на сайт Acumatica. Но результат, который я печатаю, не имеет содержания. Вот результат оператора print_r($result)

stdClass Object
(
    [SubmitResult] => stdClass Object
        (
        )
)

person Thuy Tran    schedule 20.04.2016    source источник
comment
Отправить возвращает многомерный массив. Вы уверены, что print_r в PHP может правильно его выводить? Можете ли вы вместо этого попробовать использовать var_dump?   -  person Gabriel    schedule 20.04.2016
comment
У меня есть ответ на этот вопрос: добавьте поле, которое мы хотим вернуть после команды $ SO301000GetSchema- ›Действия-› Сохранить, например: $ SO301000GetSchema- ›Действия-› Сохранить, $ SO301000GetSchema- ›OrderSummary-› OrderNbr Кроме этого, Я не знаю, что насчет C #, но в PHP я должен заменить команду: $ acumatica- ›prepareValue (‹NEW›, $ SO301000GetSchema-› OrderSummary- ›OrderNbr), командой: $ SO301000GetSchema-› Actions- ›Insert ,   -  person Thuy Tran    schedule 22.04.2016


Ответы (1)


Вы не получите никаких полей обратно, потому что вы не указали имена полей после вызова действия «Сохранить». Если вы добавите поля в массив команд, они будут возвращены в результате, например

    $SO301000Submit->commands = array
    (
        $acumatica->prepareValue("SO", $SO301000GetSchema->OrderSummary->OrderType),
        $acumatica->prepareValue("<NEW>", $SO301000GetSchema->OrderSummary->OrderNbr),
        $acumatica->prepareValue("ACTIVESTAF", $SO301000GetSchema->OrderSummary->Customer),

        $SO301000GetSchema->DocumentDetails->ServiceCommands->NewRow,
        $acumatica->prepareValue("AALEGO500", $SO301000GetSchema->DocumentDetails->InventoryID, true),
        $acumatica->prepareValue("HQ", $SO301000GetSchema->DocumentDetails->Branch),

        $SO301000GetSchema->Actions->Save

        // Fields to be returned added here
        $SO301000GetSchema->OrderSummary->OrderNbr
        $SO301000GetSchema->OrderSummary->CuryOrderTotal
    );
person Gabriel    schedule 22.04.2016