SAP 散装笔记 第 20230719 号 Q&A 问答摘选
简介: 每隔一段时间,我会整理一份问答摘选的散装笔记,笔记来源于博客、公众号、知识星球、微信、 QQ 等地方。这是第 20230719 号 Q&A 问答摘选,希望这些问答对你有所帮助。
关键字:SAP
ABAP
散装笔记
Q&A
问答摘选
文章目录
1 问答摘选
1.1 完整一天的日期时间表达
- 问:用日期时间区间格式表达完整的一天时间
- 答:以 20230705 为例,[ 2023-07-05 00:00:00 , 2023-07-05 24:00:00 ] 。
我发现有不少同学会搞错这个问题哦,小坑易踩。
1.2 对比不同环境系统间的 SPRO 配置差异
- 问:SAP怎么对比两个系统的SPRO配置差异?
- 答:事务码,SCU0 - 定制跨系统查看器。
1.3 二分法使用注意事项
- 问:标准内表排序了,二分查找了,为什么没找到?
- 答:
- 检查所有被使用的键值都是升序排序(排序缺省升序)。
SAP ABAP 二分法查找(Sort Binary Search)究竟能不能使用降序 。 - 检查 WITH KEY 字段名顺序和 SORT BY 字段名顺序完全一致。
- 检查所有被使用的键值都是升序排序(排序缺省升序)。
1.4 动态 ALV
- 问:动态 ALV 能控制单元格可编辑么?动态内表没有固定结构,但是编辑ALV单元格需要一个 LVC_T_STYL 类型的字段,这个怎么处理?
- 答:当然可以,互不相干。编辑状态肯定是基于构建动态内表完成后的操作,这时肯定有字段了,见用于创建动态内表的 components[] 。
1.5 MIGO 过账
- 问:在用 bapi_goodsmvt_create 过账移动类型 161 时,如果采购单没有 161 过账过,就会报 m7036 无收货可能,如果有过账过 161 ,就可以成功,为什么?
- 答:采购类型配置没有勾选增强退货选项导致。
1.6 STRING_SIZE_TOO_LARGE
- 问:一个 STRING 字段值的最大长度限制是多少?
- 答:2145386496 。
A string with a length 2145386870 (bytes) was about to be created.
However, this length exceeds the maximum size possible for a string of
2145386496.
1.7 ABAP 和 XML
- 问:ABAP 和 XML 互转
- 答:ABAP 和 XML 互转的 3 种方式
- XML1:zcl_xml_util
SAP ABAP ZCL_XML_UTIL 使用介绍:ABAP 和 XML 间的序列化和解析
SAP TOOLS ZCL_XML_UTIL ABAP2XML XML2ABAP 出处、源码、实施、增强、修正、生产版本 - XML2:cl_proxy_xml_transform
- XML3:simple transformation / CALL TRANSFORMATION
- XML1:zcl_xml_util
data: lv_xml type string.
call transformation id source b = <abap_data> result xml lv_xml.
call transformation id source xml lv_xml result b = <abap_data>.
1.8 将 XML 解析为内表
- 问:如何快速便捷的获取 XML 中某个值?
- 答:根据字段名称查询值。
DATA:xml_string TYPE string.
DATA:xml_xstring TYPE xstring .
DATA:lt_xml_table TYPE STANDARD TABLE OF smum_xmltb with header line.
DATA:lt_return TYPE STANDARD TABLE OF bapiret2 .
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = xml_string
IMPORTING
buffer = xml_xstring.
CALL FUNCTION 'SMUM_XML_PARSE'
EXPORTING
xml_input = xml_xstring
TABLES
xml_table = lt_xml_table
return = lt_return.
1.9 SAP 与 OA 业务集成
- 问:SAP 怎么把采购申请和询报价和 OA 集成起来?
- 答:这个很简单啊,常规集成就行,没有附件等特殊对象吧,有附件就不能走 rfc ,需要oa后端 java 二开,重要是业务流程怎么设计,决定了系统交互怎么进行。
- 问:采购申请同步给 oa,oa 基于采购申请维度合并拆分询报价,最后把价格和货源确定更新到采购申请,还是采购申请在 sap 创建询报价,同步询报价给 oa,oa 回传结果,sap 自己确定货源和价格。
- 答:这得看你期望 OA 只承载审批功能,还是承载更多业务功能。
1.10 满分回答
- 问:给数值赋值时,纯数字可以不加引号,为啥小数要加?
- 答1(满分):
你要让弱智的 SAP 知道那不是个句号,是个小数点。
- 答2(零分):点是预置关键字有语法含义。
1.11 Table Control 控件开发
- 问:Table Control 输入数据后回车数据被清空,无数据。
- 答:使用向导开发的 Table Control,不会初始新增空的内表行,此时内表是空的,无法通过索引更新。解决办法是初始化时新增一行或多行空的内表行。
"屏幕逻辑流
"tc_demo4 是 table control 名称
module tc_demo4_change_tc_attr.
module tc_demo4_change_tc_attr output.
"----->BEGIN 设置初始输入行数
if gt_demo4[] is initial.
do 1 times.
append initial line to gt_demo4.
enddo.
endif.
"<-----end 设置初始输入行数
describe table gt_demo4 lines tc_demo4-lines.
endmodule.
1.12 工单保存和状态
- 问:工单保存前的增强点,能拿到工单保存后的状态吗?比如工单点击下达,状态会变成 rel,这个时候保存前的增强点能抓到吗??
- 答:可以。BADI IF_EX_WORKORDER_UPDATE~BEFORE_UPDATE
其他
我的微信群、QQ群和其他发布平台。
长期提供开发和运维服务。