分类 SAP 下的文章

SAP 报表导出本地文件时报错:

报错文档如下:

Runtime Errors GETWA_NOT_ASSIGNED
Date and Time 2020-10-15 14:59:42

Short text
Field symbol has not yet been assigned.

发生了什么?
Error in the ABAP Application Program

The current ABAP program "SAPLKKBL" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
Note down which actions and inputs caused the error.

To process the problem further, contact you SAP system
administrator.

Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.

错误分析
You attempted to access an unassigned field symbol
(data segment 136).

This error may occur if
- You address a typed field symbol before it has been set with
ASSIGN
- You address a field symbol that pointed to the line of an
internal table that was deleted
- You address a field symbol that was previously reset using
UNASSIGN or that pointed to a local field that no
longer exists
- You address a global function interface, although the
respective function module is not active - that is, is
not in the list of active calls. The list of active calls
can be taken from this short dump.

经查:有两个原因

1. ALV显示超过了99列,不被支持。
2. ALV字段名错误,定义输出ALV的字段名跟内表定义的字段名不一致。(Fieldcat-fieldname 赋值的时候是小写字母)

我这里的情况是第一种,使用部门导出的是xls格式的Excel文件

 

 然后我用 MHTML 格式导出,发现可以,一百多列也可以导出

问题解决,升级office,导出时选择 Excel(MHTML格式)即可!可以另存为.xlsx格式!。 

我的Office版本是:MS Office 2016专业版

 

创建SM30维护这里就不说了,直接说后续的定制需求的更改
SM30维护自定义表,使用部门一般会有一些需求:

一:输入客户编码后自动带出客户名称、输出物料自动带出物料描述
二:进入维护视图前,对数据进行筛选或排序
三:隐藏删除按钮(或者别的快捷菜单按钮)
四:在维护视图中批量导入/导出数据
五:针对不同操作人员,显示不同的数据
六:输入日期后,根据逻辑自动算出截止日期

一:输入客户编码后自动带出客户名称、输出物料自动带出物料描述 

1、用表格维护事件的方式
SE11->表->菜单->实用程序->表格维护生成器
菜单->环境->修改->事件

新增条目,选定事件编号为05,填写FORM名称:ZMVRPZ_YZ 回车
点击FORM名称右边->编辑器下面的图标创建 include程序:LZPHX_TEXT2F01
在里面写FORM程序:FORM名称要和外面事件上写的一致。

如果报错:函数组 xxxxxxx不能被处理,创建或修改了屏幕没有激活函数组,SE80里面激活该函数组即可。

代码如下:(记得进SE80里面激活维护函数组)

            FORMzmvrpz_yz.SELECT SINGLE maktx FROM makt INTO z_mvrpz-maktxWHERE matnr = z_mvrpz-matnrAND spras = sy-langu.SELECT SINGLE name1 FROM kna1 INTO z_mvrpz-name1WHERE kunnr = z_mvrpz-kunnrAND spras = sy-langu.ENDFORM. 

 

网上找了查询结果怎么少显示一列,因为数据很多列,结果不是视图就是嵌套,太麻烦,这里用临时表做

exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB', '192.168.5.61'  --链接远程服务器
exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, 'sa', 'mima'   --用户名和密码

--insert into dbo.stu select * from ITSV.xph.dbo.stu where a0188 = '792'   --结果提示第一列不能这么改

select * into #stu_01 from ITSV.xph.dbo.a48 where a0188 = '792'   --读取到临时表

ALTER TABLE #stu_01 DROP COLUMN TRANSID    --删掉行:TRANSID

原文链接:https://www.591sap.com/thread-953-1-1.html

 

SAP交货单交货数量在lips中直接读取,但是拣配数量lfimg,只存在vbfa中,且如果基本计量单位和销售单位不一样,那么需要数量的转换

一、部分代码:

      SELECT SUM( rfmng ) INTOlv_rfmng
      
FROMvbfa
      
WHERE vbelv = lt_lips-vbeln
        
AND posnv = lt_lips-posnr
        
AND vbtyp_n = 'Q'.
      
IF sy-subrc = 0.
        
CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'  "基本计量单位-->销售单位           EXPORTING            input               =lv_rfmng*           KZMEINH              = ' '             matnr                = lt_lips-matnr
            meinh               
= lt_lips-vrkme  "销售单位             meins                = lt_lips-meins  "基本计量单位           IMPORTING            output               = t_item-pikmg
         
EXCEPTIONS            conversion_not_found= 1            input_invalid        = 2            material_not_found   = 3            meinh_not_found      = 4            meins_missing        = 5            no_meinh            = 6            output_invalid      = 7            overflow            = 8            OTHERS               = 9.
      
ENDIF.
      t_item
-vrkme = lt_lips-vrkme.