生产收据上的SP通知成功,但收据良好时导致错误

2020-09-02 17:37发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,请帮助我

我有一个脚本SPN并在来自生产的事务收据上运行良好,但是在Trans上导致错误。 好收据

然后显示如下错误:" 1)。[SAP AG] [LIBODBCHDB32 DLL] [HDBODBC32]语法错误或访问冲突; 257 sql语法错误:第1列第8行(在pos 8)"

我的脚本出了什么问题:(

 ---------------------------------------------------  --------------------------------------------------  -----
 -SP NOTIF untuk mencegah:
 -用户生产的melakukan数量发行中的melakukan收据
 -Om Heri着
 --------------------------------------------------  --------------------------------------------------  -
 如果(:object_type ='59')和(:transaction_type ='A'或:transaction_type ='U')
 然后
    选择进入
    从
    (
      请选择输入" BaseRef"作为区别-BaseRef = Nomor WO
      从IGN1
      其中" DocEntry" =:list_of_cols_val_tab_del AND" BaseType" = 202-来自生产的Trx收货
    ) 一个;
    选择接收到接收
    从
    (
      SELECT SUM(" Quantity")RECEVEQTY
      从IGN1
      其中" BaseRef" =:条目和" BaseType" = 202-BaseRef =条目= Nomor WO
      AND" TranType" ='C'-Krn Jika Nilainya NULL Artinya返回组件,mk tdk dihitung
    )B;

    从中选择count(*)到cnt
    (
       SELECT MIN(T1。" Actual")ACTUAL,T1。" DocEntry",T1。" DocNum",T1。" PlannedQty"
       从
         ( 选择
             T2。" DocEntry",T2。" DocNum",T2。" PlannedQty",T3。" ItemCode",
             SUM(T3。" IssuedQty")为"已发布",SUM(T3。" PlannedQty")为"已计划",
             SUM(T3。" PlannedQty")/T2。" PlannedQty"为"每1期问题",
             ROUND(SUM(T3。" IssuedQty")/(SUM(T3。" PlannedQty")/T2。" PlannedQty"))为"实际"
           从所有者T2内部联接W1在T3上T3。" DocEntry" = T2。" DocEntry"
           在T2。"类型" <>'D'
           AND LEFT(T3。" ItemCode",2)='IP'
           AND T3。" BaseQty" = 1
           AND T2。" DocNum" =:条目
       
           GROUP BY T2。" DocEntry",T2。" DocNum",T2。" PlannedQty",T3。" ItemCode"
         )T1
       哪里
           T1。" DocNum" =:条目-DocNum =条目= Nomor WO
       按T1。" DocEntry",T1。" DocNum",T1。" PlannedQty"分组
       具有(:Receveqty> MIN(T1。" Actual"))
    );
    如果:cnt> 0则
       错误:= 590778;
       error_message:='接收的数量大于发出的数量,请检查生产订单中的未结数量!
    万一;
 万一;
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,请帮助我

我有一个脚本SPN并在来自生产的事务收据上运行良好,但是在Trans上导致错误。 好收据

然后显示如下错误:" 1)。[SAP AG] [LIBODBCHDB32 DLL] [HDBODBC32]语法错误或访问冲突; 257 sql语法错误:第1列第8行(在pos 8)"

我的脚本出了什么问题:(

 ---------------------------------------------------  --------------------------------------------------  -----
 -SP NOTIF untuk mencegah:
 -用户生产的melakukan数量发行中的melakukan收据
 -Om Heri着
 --------------------------------------------------  --------------------------------------------------  -
 如果(:object_type ='59')和(:transaction_type ='A'或:transaction_type ='U')
 然后
    选择进入
    从
    (
      请选择输入" BaseRef"作为区别-BaseRef = Nomor WO
      从IGN1
      其中" DocEntry" =:list_of_cols_val_tab_del AND" BaseType" = 202-来自生产的Trx收货
    ) 一个;
    选择接收到接收
    从
    (
      SELECT SUM(" Quantity")RECEVEQTY
      从IGN1
      其中" BaseRef" =:条目和" BaseType" = 202-BaseRef =条目= Nomor WO
      AND" TranType" ='C'-Krn Jika Nilainya NULL Artinya返回组件,mk tdk dihitung
    )B;

    从中选择count(*)到cnt
    (
       SELECT MIN(T1。" Actual")ACTUAL,T1。" DocEntry",T1。" DocNum",T1。" PlannedQty"
       从
         ( 选择
             T2。" DocEntry",T2。" DocNum",T2。" PlannedQty",T3。" ItemCode",
             SUM(T3。" IssuedQty")为"已发布",SUM(T3。" PlannedQty")为"已计划",
             SUM(T3。" PlannedQty")/T2。" PlannedQty"为"每1期问题",
             ROUND(SUM(T3。" IssuedQty")/(SUM(T3。" PlannedQty")/T2。" PlannedQty"))为"实际"
           从所有者T2内部联接W1在T3上T3。" DocEntry" = T2。" DocEntry"
           在T2。"类型" <>'D'
           AND LEFT(T3。" ItemCode",2)='IP'
           AND T3。" BaseQty" = 1
           AND T2。" DocNum" =:条目
       
           GROUP BY T2。" DocEntry",T2。" DocNum",T2。" PlannedQty",T3。" ItemCode"
         )T1
       哪里
           T1。" DocNum" =:条目-DocNum =条目= Nomor WO
       按T1。" DocEntry",T1。" DocNum",T1。" PlannedQty"分组
       具有(:Receveqty> MIN(T1。" Actual"))
    );
    如果:cnt> 0则
       错误:= 590778;
       error_message:='接收的数量大于发出的数量,请检查生产订单中的未结数量!
    万一;
 万一;
 
付费偷看设置
发送
3条回答
N-Moskvin
1楼 · 2020-09-02 18:17.采纳回答

感谢丹麦语的回复:)

"声明变量"已经在我的SPTN上方

现在我有了一个主意,添加此脚本并...是的,收据良好,并且收货时也没有错误

如果(:object_type ='59')和(:transaction_type ='A'或:transaction_type ='U')
 然后
 SELECT TOP 1 BASETYPE INTO ProdType
 从
 (
            SELECT TOP 1 CAST(" BaseType" AS NVARCHAR(20))AS BASETYPE
 从IGN1
 WHERE" DocEntry" =:list_of_cols_val_tab_del
 全联盟
 选择''从DUMMY作为基本类型
 )一个;
    如果:ProdType ='202'然后
    SELECT ENTRY INTO条目... bla bla bla像脚本之前一样...
 
小熊yu生菜
2楼-- · 2020-09-02 18:15

请尝试一下,它可以正常运行9.2pl08 HANA

如果(:object_type ='59')和(:transaction_type ='A'或:transaction_type ='U'),则
声明ENTRY整数;
声明Receveqty整数;
声明cnt整数;
从输入
中选择要输入的计数(*)(
从输入中选择DISTINCT" BaseRef"-BaseRef = Nomor WO从IGN1
其中" DocEntry" =:list_of_cols_val_tab_del和 " BaseType" = 202-来自生产的Trx收货
)A;
选择COUNT(*)进入Receveqty
---- SELECT RECEVEQTY进入Receveqty


SELECT 从IGN1开始的
的SUM(" Quantity")

其中" BaseRef" =:条目和" BaseType" = 202-BaseRef =条目= Nomor WO
和" TranType" ='C'- Krn Jika Nilainya NULL Artinya返回组件,mk tdk dihitung
)B; <​​br>


SELECT MIN(T1。" Actual")ACTUAL,T1选择count(*)到cnt .." DocEntry",T1。" DocNum",T1。" PlannedQty"
(选择
T2。" DocEntry",T2。" DocNum",T2。" PlannedQty",T3。" ItemCode ",
SUM(T3。" IssuedQty")为" Issued",SUM(T3。" PlannedQty")为 " Planned",
SUM(T3。" PlannedQty")/T2。" PlannedQty"表示为"每1期问题",
ROUND(SUM(T3。" IssuedQty")/(SUM(T3。" PlannedQty" )/T2。" PlannedQty"))为"实际"
从OWOR T2内部联接WOR1 T3到T3。" DocEntry" = T2。" DocEntry"
WHERE T2。"类型" <>'D'< br> AND LEFT(T3。" ItemCode",2)='IP'
AND T3。" BaseQty" = 1
AND T2。" DocNum" =:条目

T2分组。 " DocEntry",T2。" DocNum",T2。" PlannedQty",T3。" ItemCode"
)T1
WHERE
T1。" DocNum" =:条目-DocNum =条目= Nomor WO < br>按T1。" DocEntry",T1。" DocNum",T1。" PlannedQty"分组
具有(:Receveqty> MIN(T1。" Actual"))
);
如果:cnt> 0 then
错误:= 590778;
error_message:='接收的数量大于已发出的数量,请检查生产订单中的未清数量!';
结束;如果
结束;

丹麦语

代楠1984
3楼-- · 2020-09-02 18:35

请使用"正确答案"将其关闭

丹麦语

一周热门 更多>