AMDP:错误执行数据库过程时:SQL代码:339

2020-09-07 04:58发布

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

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


您好,专家,我通过事务执行AMDP时遇到上述错误。

使用的内部表的类型

ET_BATCH

类型:ty_batch的开始,
matnr类型matnr,
werks类型werks_d,
LGORT类型LGORT_d,
charg类型charg_d,
hsdat类型hsdat,
verab类型verab ,
数量TYPE Labst,
星期TYPE char8,
年TYPE char4,
月TYPE char10,
quater TYPE char7,
价格TYPE stprs,
objek TYPE cuobj_bm,
b_unit TYPE的含义,
ty_batch的结尾,

IT_T_BATCH

类型:ty_t_batch的开始,
matnr类型matnr,
werks类型werks_d,
charg类型charg_d,
qty类型menge_d,
hsdat类型hsdat,
verab类型动词 ,
b_unit TYPE含义,
ty_t_batch结束,

以下是方法中的代码

DECLARE lc_qty常量十进制(13,3):='0.000';
DECLARE lc_zero常量char(1):='0';
DECLARE lc_space CONSTANT char(8):=''; < br> DECLARE lc_date常量日期:='00000000';
DECLARE lc_set常量char(1):='X';
* =================== ================================================== == *
*根据制造日期获取周,月和年-

et_batch = SELECT
matnr,
werks,
lgort,
charg,
hsdat,
动词,
数量,
等周(TO_DATE(hsdat,'YYYYMMDD'))作为星期,
当hsdat = 00000000或hsdat为NULL或hsdat = lc_space然后00000000
当hsdat不为NULL并且hsdat!= 00000000时,年份(TO_DATE(hsdat,'YYYYMMDD'))
以年结束,
monthname(hsdat)作为月,
当hsdat!= lc_space和hsdat时 != 00000000然后
四分之一(to_date(hsdat,'YYYYMMDD'))结束为四分之一,
:lc_zero作为价格,
cuobj_bm作为objek,
b_unit作为b_unit
FROM(
*从MCH1获取生产日期并转换批次数量 用户输入的UOM的有效性
SELECT DISTINCT
a.matnr,
b.werks,
b.lgort,
a.charg,
a.hsdat,
verab,
当unts.umrez = 0或unts.umrez为NULL时的情况,然后0.000
当unts.umrez不为NULL时的情况
* MOD的开头:MONTAOSP:WO0000000126366:11.06.2019
* ROUND((((b.CLABS + B.CUMLM + B.CINSM + B.CEINM + B.CSPEM + b.CRETM)*
ROUND((((b.CLABS + B.CUMLM + B.CINSM + B. CEINM + b.CRETM)*
* MOD结束:MONTAOSP:WO0000000126366:11.06.2019
(unts.umren/unts.umrez)),3,ROUND_HALF_EVEN)
结尾为数量,
a.cuobj_bm,
c。表示为来自" MCH1"的b_unit
,作为a
INNER在b.mandt = a.mandt
AND b.matnr =上作为" b
加入" MCHB" a.matnr
和b.charg = a.charg
内部连接" MARA",如c.matnr上的c
= a.matnr
左外部连接(
SELECT DISTINCT matnr,< br> meinh,
umren,
umrez
来自marm
mandt = session_context('CLIENT')
AND matnr IN(选择DISTINCT matnr FROM:it_marc)
AND meinh = :iv_unit)AS unts ON unts.matnr = a.matnr
其中a.mandt = session_context('CLIENT')
和c.mandt = session_context('CLIENT')
和a.matnr in(选择DISTINCT matnr FROM :it_marc)和b.werks(从:it_marc中选择DISTINCT werk)
和a.hsdat!=:lc_space
和a.hsdat!=:lc_date
和a.hsdat不是 NULL
和(b.CLABS!= lc_qty
或B.CUMLM!= lc_qty
或B.CINSM!= lc_qty
或B.CEINM!= lc_qty
或B.CSPEM! = lc_qty
或b.CRETM!= lc_qty)
UNION ALL
*将运输批次与完整批次一起添加
SELECT matnr,
werks,
0作为lgort,
charg,
hsdat,
动词,
qty,
CONCAT(matnr,werks)AS objek,
b_unit
FROM:it_t_batch);

*获取特征
IF iv_char_flag =:lc_set
THEN
*获取选定特征的详细信息!
li_temp =
选择btc.matnr,
btc.werks,
btc.charg,
btc.hsdat,
btc.verab,
btc.qty AS数量,
btc.week,
btc.year,
btc.month,< b r> btc.quater,
chr.atwrt AS ch_val,
btc.qty AS cr_qty
FROM:et_batch as btc
INNER JOIN ausp as chr
ON chr.mandt = SESSION_CONTEXT(' CLIENT')
AND chr.objek = btc.objek
atinn = iv_cr_nm;

*根据选定的值过滤详细信息!!
et_batch_cr = APPLY_FILTER(:li_temp,:iv_values) ;

END IF;

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

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


您好,专家,我通过事务执行AMDP时遇到上述错误。

使用的内部表的类型

ET_BATCH

类型:ty_batch的开始,
matnr类型matnr,
werks类型werks_d,
LGORT类型LGORT_d,
charg类型charg_d,
hsdat类型hsdat,
verab类型verab ,
数量TYPE Labst,
星期TYPE char8,
年TYPE char4,
月TYPE char10,
quater TYPE char7,
价格TYPE stprs,
objek TYPE cuobj_bm,
b_unit TYPE的含义,
ty_batch的结尾,

IT_T_BATCH

类型:ty_t_batch的开始,
matnr类型matnr,
werks类型werks_d,
charg类型charg_d,
qty类型menge_d,
hsdat类型hsdat,
verab类型动词 ,
b_unit TYPE含义,
ty_t_batch结束,

以下是方法中的代码

DECLARE lc_qty常量十进制(13,3):='0.000';
DECLARE lc_zero常量char(1):='0';
DECLARE lc_space CONSTANT char(8):=''; < br> DECLARE lc_date常量日期:='00000000';
DECLARE lc_set常量char(1):='X';
* =================== ================================================== == *
*根据制造日期获取周,月和年-

et_batch = SELECT
matnr,
werks,
lgort,
charg,
hsdat,
动词,
数量,
等周(TO_DATE(hsdat,'YYYYMMDD'))作为星期,
当hsdat = 00000000或hsdat为NULL或hsdat = lc_space然后00000000
当hsdat不为NULL并且hsdat!= 00000000时,年份(TO_DATE(hsdat,'YYYYMMDD'))
以年结束,
monthname(hsdat)作为月,
当hsdat!= lc_space和hsdat时 != 00000000然后
四分之一(to_date(hsdat,'YYYYMMDD'))结束为四分之一,
:lc_zero作为价格,
cuobj_bm作为objek,
b_unit作为b_unit
FROM(
*从MCH1获取生产日期并转换批次数量 用户输入的UOM的有效性
SELECT DISTINCT
a.matnr,
b.werks,
b.lgort,
a.charg,
a.hsdat,
verab,
当unts.umrez = 0或unts.umrez为NULL时的情况,然后0.000
当unts.umrez不为NULL时的情况
* MOD的开头:MONTAOSP:WO0000000126366:11.06.2019
* ROUND((((b.CLABS + B.CUMLM + B.CINSM + B.CEINM + B.CSPEM + b.CRETM)*
ROUND((((b.CLABS + B.CUMLM + B.CINSM + B. CEINM + b.CRETM)*
* MOD结束:MONTAOSP:WO0000000126366:11.06.2019
(unts.umren/unts.umrez)),3,ROUND_HALF_EVEN)
结尾为数量,
a.cuobj_bm,
c。表示为来自" MCH1"的b_unit
,作为a
INNER在b.mandt = a.mandt
AND b.matnr =上作为" b
加入" MCHB" a.matnr
和b.charg = a.charg
内部连接" MARA",如c.matnr上的c
= a.matnr
左外部连接(
SELECT DISTINCT matnr,< br> meinh,
umren,
umrez
来自marm
mandt = session_context('CLIENT')
AND matnr IN(选择DISTINCT matnr FROM:it_marc)
AND meinh = :iv_unit)AS unts ON unts.matnr = a.matnr
其中a.mandt = session_context('CLIENT')
和c.mandt = session_context('CLIENT')
和a.matnr in(选择DISTINCT matnr FROM :it_marc)和b.werks(从:it_marc中选择DISTINCT werk)
和a.hsdat!=:lc_space
和a.hsdat!=:lc_date
和a.hsdat不是 NULL
和(b.CLABS!= lc_qty
或B.CUMLM!= lc_qty
或B.CINSM!= lc_qty
或B.CEINM!= lc_qty
或B.CSPEM! = lc_qty
或b.CRETM!= lc_qty)
UNION ALL
*将运输批次与完整批次一起添加
SELECT matnr,
werks,
0作为lgort,
charg,
hsdat,
动词,
qty,
CONCAT(matnr,werks)AS objek,
b_unit
FROM:it_t_batch);

*获取特征
IF iv_char_flag =:lc_set
THEN
*获取选定特征的详细信息!
li_temp =
选择btc.matnr,
btc.werks,
btc.charg,
btc.hsdat,
btc.verab,
btc.qty AS数量,
btc.week,
btc.year,
btc.month,< b r> btc.quater,
chr.atwrt AS ch_val,
btc.qty AS cr_qty
FROM:et_batch as btc
INNER JOIN ausp as chr
ON chr.mandt = SESSION_CONTEXT(' CLIENT')
AND chr.objek = btc.objek
atinn = iv_cr_nm;

*根据选定的值过滤详细信息!!
et_batch_cr = APPLY_FILTER(:li_temp,:iv_values) ;

END IF;

付费偷看设置
发送
1条回答
何必丶何苦呢
1楼-- · 2020-09-07 05:44

此问题已解决,因为发现" 0作为LGORT"行中存在数据类型不匹配。 lgort字段是字符,通过分配0,我将其转换为整数。 将其更改为空白,并且可以正常工作。

一周热门 更多>