我们有一个在后台运行的abap程序并调用Web服务。最近我们收到了来自Web服务的错误。不幸的是,我们只能看到此错误的前255个字符,我们希望看到整个堆栈转储(来自C#.net Web服务)。
功能模块:
"call out to web service code goes here
IF jobid CS 'Success'.
EXIT.
ELSEIF jobid CS 'Error'.
error_string = jobid.
EXIT.
ELSEIF jobid IS INITIAL.
error_string ='NULL Value Returned'.
EXIT.
ELSE.
CONCATENATE 'Unknown Error' jobid INTO error_string SEPARATED BY ':' IN CHARACTER MODE.
ENDIF.
程序然后检查error_string
IF error_string IS INITIAL.
WRITE: / jobid.
ELSE.
PERFORM send_mail.
WRITE: / error_string.
ENDIF.
一旦记录错误,我们想回到假脱机并查看整个错误消息(这将是来自Web服务器2000+字符的大型XML消息)。
这可能吗?
编辑: error_string TYPE字符串。 程序和功能模块是内部编写的zprograms。程序在SAP BW流程链中称为ABAP流程,以触发Web服务器的操作。
答案 0 :(得分:2)
如果要将输出写入报告列表,则会有许多功能模块将字符串转换为可变大小的行的表。一个例子:
REPORT ztest_string_to_table LINE-SIZE 120.
CONSTANTS co_line_size TYPE i VALUE 60.
TYPES: t_line TYPE c LENGTH co_line_size.
DATA: l_string TYPE string,
lt_lines TYPE TABLE OF t_line.
FIELD-SYMBOLS: <l_line> TYPE t_line.
l_string = |Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus odio |.
l_string = |{ l_string }lorem, consectetur a est sed, dignissim mattis est. Maecenas |.
l_string = |{ l_string }id pulvinar diam. Pellentesque nec lacinia metus. In a sapien |.
l_string = |{ l_string }nisl. Morbi sem dolor, porta non sodales eu, elementum et lorem. |.
l_string = |{ l_string }Fusce ut suscipit enim. Aliquam imperdiet, nisi dapibus dictum |.
l_string = |{ l_string }tempor, elit tellus eleifend justo, sit amet imperdiet tellus |.
l_string = |{ l_string }nisl id enim. Fusce aliquam nunc augue, imperdiet tincidunt |.
l_string = |{ l_string }purus congue non. Fusce vestibulum tincidunt lorem, ac mattis |.
l_string = |{ l_string }dolor pharetra nec. Maecenas ullamcorper tincidunt elit et |.
l_string = |{ l_string }pellentesque. Curabitur in semper arcu, at adipiscing lorem.|.
l_string = |{ l_string }Lorem ipsum dolor sit amet, consectetur adipiscing elit. |.
l_string = |{ l_string }Nunc ultricies fermentum pellentesque.|.
CALL FUNCTION 'SWA_STRING_TO_TABLE'
EXPORTING
character_string = l_string
line_size = co_line_size
IMPORTING
character_table = lt_lines.
LOOP AT lt_lines ASSIGNING <l_line>.
WRITE: / <l_line>.
ENDLOOP.
答案 1 :(得分:0)
检查报表语句的LINE-SIZE参数。例如,
report ztest line-SIZE 9.
data: error type string.
error = '1234567890'.
write error.
输出:
123456789
请注意,行大小最大值为1023.要查看全部内容,您需要将邮件分成多行。