点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我已经创建了一个存储过程,该存储过程正在调用``计算''视图。我需要传递多个输入参数值,但我不能这样做。 我已经检查了所有与此相关的博客,但是到处都通过传递值本身来显示它。 我想传递输入参数而不是值。下面是我的代码段。
-IP_MATERIAL = 000000000067064914 或 000000000062040102;(输入参数)
如果(LENGTH(:IP_MATERIAL)<= 19)然后
VAR_IP_MATERIAL:= REPLACE(''''||:IP_MATERIAL ||'''','OR',''',''');
ELSE VAR_IP_MATERIAL:= REPLACE(''''||:IP_MATERIAL ||'''','OR',''''','''''));
END IF;
-VAR_IP_MATERIAL ='000000000067064914'',''000000000062040102'(输入参数的转换值)
TT_AK =
从" _SYS_BIC"中选择SELECT MANDT,MATNR,WERKS,C_DATE,LGORT,SUM(IFNULL(" LABST",0))AS C_OPENING_STOCK,SUM(IFNULL(" LABST",0))AS LABST。" A。CA_PS_MARD "((PLACEHOLDER。" $ IP_PLANT $" =>:VAR_PLANT,PLACEHOLDER。" $ IP_MATERIAL $" =>:IP_MATERIAL,PLACEHOLDER。" $ IP_DATE_TO_RUN_REPORT $" =>:IP_CURR_DATE,PLACEHOLDER。" $ IP_STORAGE _):LOC $ GROUP BY MANDT,MATNR,WERKS,C_DATE,LGORT;
通过上面的代码,我能够传递单个值作为输入参数,但是如果像000000000067064914 OR 那样传递IP_MATERIAL,即我正在传递两种材料并进行一些字符串解决,我最终将其作为
'000000000067064914'',''000000000062040102'然后抛出错误。
我以前在SP内部使用Dynamic SQL仍然可以正常工作。但是我想删除动态SQL部分。
动态SQL代码(更早):
EXEC'INSERT INTO #OPENING_STOCK SELECT MANDT,MATNR,WERKS,C_DATE,LGORT,SUM(IFNULL(" LABST",0))AS C_OPENING_STOCK,SUM(IFNULL(" LABST",0))AS LABST FROM" _SYS_BIC"。" A.CA_PS_MARD"(PLACEHOLDER。" $ IP_PLANT $" =>'||:VAR_PLANT ||',PLACEHOLDER。" $ IP_MATERIAL $" =>'||:VAR_IP_MATERIAL ||',PLACEHOLDER。" $ IP_DATE_TO_RUN_REPORT $" =>'''|| :: IP_CURR_DATE ||''',PLACEHOLDER。" $ IP_STORAGE_LOC $" =>'||:VAR_LGORT ||')GROUP BY MANDT,MATNR,WERKS,C_DATE,LGORT';;
这很好用。
我应该如何传递值,我什至尝试使用VAR_IP_MATERIAL的不同组合,如'''000000000062040102'',''000000000067064914'''但全部徒劳,还是我在调用存储过程时需要做一些代码更改 .....请帮助我。
我正在使用SAP HANA 1.0 SPS 11。
此致
Anuj Kumar
查看此博客-
https://blogs.sap.com/2013/12/30/using-multiple-values-in-input-parameter-for-filtering-in-graphical-calculation-view / >
一周热门 更多>