【问题标题】:How to send large amount of data to soap web service as input parameter?如何将大量数据作为输入参数发送到肥皂网络服务?
【发布时间】:2016-01-26 12:41:25
【问题描述】:

当我从 PHP 发送输入参数时,我会这样做:

$data = [
        'param1' => "value"
    ];

在我的 .p 过程中,我将该参数定义为

DEFINE INPUT PARAMETER param1 AS CHARACTER FORMAT "x(50)". 

以后我可以在我的代码中的任何地方使用param1

但是如何在 PHP 中将临时表的数据格式化为输入参数?

DEFINE TEMP-TABLE inputTable
FIELD field1    LIKE sometable.field1
FIELD field2    LIKE  sometable.field2.

DEFINE INPUT PARAMETER TABLE FOR inputTable.

FOR EACH inputTable:
//store data into progres database
END.

是否可以将表格作为输入参数发送到 SOAP Web 服务以及如何发送?

【问题讨论】:

    标签: php soap progress-4gl


    【解决方案1】:
    1. 通过 JSON 将数据发送到您的 WSA。
    2. 将“parm1”更改为 LONGCHAR
    3. 在您的程序中,定义 TT,然后使用 READ-JSON() 方法将数据放入 TT。在您的情况下,您可以将 parm1 替换为文件名,并将“file”更改为“longchar”。

    有关此代码示例和相关文档,请参阅 READ-JSON() 下的 ABL 参考指南:

    DEFINE VARIABLE cSourceType AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cReadMode AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cFile AS CHARACTER NO-UNDO.
    DEFINE VARIABLE lRetOK AS LOGICAL NO-UNDO.
    DEFINE VARIABLE hDSet AS HANDLE NO-UNDO.
    CREATE DATASET hDSet.
    ASSIGN
        cSourceType = "file"
        cFile = "dset.json"
        cReadMode = "empty".
    
    lRetOK = hDSet:READ-JSON(cSourceType, cFile, cReadMode).
    

    【讨论】:

    • 你能提供一些带有虚拟 JSON 的代码,将其解析为进度对象并将其存储到数据库中吗?
    • 我建议阅读 Progress 文档,了解有关按照您的要求移动 JSON 数据的详细信息。
    【解决方案2】:

    其实解决方法很简单。

    我只需要把整个故事颠倒过来。

    所以在过程中的代码和之前一样

    DEFINE TEMP-TABLE inputTable
    FIELD field1    LIKE sometable.field1
    FIELD field2    LIKE  sometable.field2.
    
    DEFINE INPUT PARAMETER TABLE FOR inputTable.
    
    FOR EACH inputTable:
    //store data into progres database
    END.
    

    在 php 中我发送这样的数组

    $data = [
            'inputTable' => $dataFromDB->toArray()
        ];
    

    唯一需要担心的是,在变量 $data 中,您有 field1field2 等列的值。尝试过,它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      相关资源
      最近更新 更多