微信开发中 ACCESS TOKEN 过期失效的解决方案详解
486
2022-11-26
动态对比两个相同结构工作区的值CL…
需求是这样的
传入is_likp 参数,结构同likp 对比目前 cs_likp 参数,结构同 likp
如果is_likp 中某个字段赋值了,就覆盖掉 cs_likp原有值, 如果is_likp 中字段是空,不处理
DATA : LT_IDETAILS TYPE ABAP_COMPDESCR_TAB WITH HEADER LINE .
DATA : LR_REF_TABLE_DES TYPE REF TO CL_ABAP_STRUCTDESCR .
“定义field变量,type any FIELD-SYMBOLS : 《L_FIELD》 TYPE ANY, 《L_FIELD_C》 TYPE ANY.
**动态得到内表结构 ”全局结构
LR_REF_TABLE_DES ?=
CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( 'LIKP' ).
LT_IDETAILS[] = LR_REF_TABLE_DES->COMPONENTS[].
"循环判断结构每个字段
LOOP AT LT_IDETAILS.
ASSIGN COMPONENT LT_IDETAILS-NAME OF STRUCTURE is_likp TO 《
L_FIELD》 . IF SY-SUBRC = 0 AND IS NOT INITIAL.
ASSIGN COMPONENT LT_IDETAILS-NAME OF STRUCTURE CS_LIKP TO 《
L_FIELD_C》. 《 L_FIELD_C》 = 《 L_FIELD》 . ENDIF.
ENDLOOP.
其中: ASSIGN COMPONENT LT_IDETAILS - NAME OF STRUCTURE is_likp TO . 【 LT_IDETAILS - NAME】:是is_likp 中的字段名称 , 【 TO 《 L_FIELD》】这里的 《 L_FIELD》就是刚才那个字段对应的值
都是动态指定,循环的是likp的结构
其实如果两个结构不完全一样, 如果只需要修改相同字段名称的值 也可以这样处理 只是assign后判断subrc即可
另外还有两个函数 DDIF_NAMETAB_GET LVC_FIELDCATALOG_MERGE 具体怎么用自己写代码一测便知
注: 《 L_FIELD_C》是为防止跟web编码有冲突
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~