首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于打印ZPL的FM会导致死锁

用于打印ZPL的FM会导致死锁
EN

Stack Overflow用户
提问于 2022-07-07 07:30:49
回答 1查看 110关注 0票数 0

我确实创建了一个ABAP报告来打印一些ZPL,这很好。现在我的目标是将这个逻辑转换成一个FM,以便能够在我想要的任何地方调用它。问题是,这样做会导致我的SAPGUI锁住自己大约10分钟,并向我显示一条消息:“滚动区域是小的”。

为了打印ZPL,我使用了以下指南:

这是我测试过的最简化的代码:

代码语言:javascript
运行
复制
call function 'GET_PRINT_PARAMETERS'
exporting
  destination    = 'WA06'
  copies         = 1
  list_name      = 'TEST'
  list_text      = 'Test NEW-PAGE PRINT ON'
  immediately    = 'X'
  release        = ' '
  new_list_id    = 'X'
  expiration     = 2
  layout         = 'G_RAW'
  sap_cover_page = 'X'
  receiver       = sy-uname
  department     = 'System'
  no_dialog      = abap_false
  line_count     = 60
importing
  out_parameters = params
  valid          = valid.

if valid <> space.
  new-page print on parameters params no dialog.
  format color off intensified off.
  print-control function 'BCPFX'.
  write:  /   ' :NEW-PAGE'.
  write:  /   ' ^XA ' .
  write:  /   ' ^FO040,040^A0N,40,40^FDHello World^FS '.
  write:  /   ' ^XZ ' .
  write:  /   ' ^FX End of Job'.
endif.

它基本上只是调用GET_PRINT_PARAMETERS,做一些打印机控制伏都教,然后写行。当我从SE38报告中执行它时,这是非常好的。但是,绝对没有什么比向我展示打印机设置窗口并输入它更好。它只运行了大约10分钟,然后向我显示滚动区域太小的错误,这只是消失了,只要我尝试点击F1寻求帮助。

我在一定程度上调试了FM,这样我就明白了,问题不在我的程序中,而是在周围的SFCS_FA_TEST_FUNCTION FM中,或者更准确地说,死锁在执行SFCS_FA_OUTPUT_LIST时发生在第271行,因此从第48行开始进行检查。

代码语言:javascript
运行
复制
* Und dann das Ganze ausgeben
  IF rseumod-fbalv_grid = space.
    CALL SCREEN 500.
  ELSE.
    CALL SCREEN 800.     " ec: ALV-Darstellung
  ENDIF.

在这里,呼叫屏幕500被一遍又一遍地呼叫。

有没有人经历过同样的问题,并能帮助我解决它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-20 06:38:14

问题似乎是SE37环境。我试着用FM写打印机的事实。如果我从一个正常的报告中调用FM,那么所有的结果都与预期的一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72893874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档