当我从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服务以及如何?
答案 0 :(得分:1)
有关此代码示例和相关文档,请参阅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).
答案 1 :(得分:0)
实际上,解决方案非常简单。
我只能扭转整个故事。
因此,程序代码保持不变
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
中,您有列field1
,field2
等的值。尝试了它并且它有效。