abap 将hr节点转换成 子-父 节点的形式 DEMO
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM GET_DATA .
DATA:LT_HRP1001 TYPE TABLE OF HRP1001,
LS_HRP1001 LIKE LINE OF LT_HRP1001,
LT_HRP1001_TEMP TYPE TABLE OF HRP1001.
DATA:GV_UP TYPE STRUC-PUP.
DATA: RESULT_TAB TYPE TABLE OF SWHACTOR ,
RESULT_WA LIKE LINE OF RESULT_TAB,
RESULT_OBJEC TYPE TABLE OF OBJEC ,
RESULT_OBJEC_WA LIKE LINE OF RESULT_OBJEC,
RESULT_STRUC TYPE TABLE OF STRUC ,
LT_RESULT_STRUC_TEMP TYPE TABLE OF STRUC,
LS_RESULT_STRUC_TEMP LIKE LINE OF LT_RESULT_STRUC_TEMP.
DATA:LV_OBJID TYPE HROBJID VALUE '00000000'.
LS_HRP1001-OBJID = LV_OBJID.
CALL FUNCTION 'RH_STRUC_GET'
EXPORTING
ACT_OTYPE = 'O'
ACT_OBJID = LV_OBJID
ACT_WEGID = 'B002'
* ACT_INT_FLAG =
ACT_PLVAR = '01'
ACT_BEGDA = SY-DATUM
ACT_ENDDA = SY-DATUM
* ACT_TDEPTH = 0
ACT_TFLAG = 'X'
ACT_VFLAG = 'X'
AUTHORITY_CHECK = 'X'
* TEXT_BUFFER_FILL =
* BUFFER_MODE =
* IMPORTING
* ACT_PLVAR =
TABLES
RESULT_TAB = RESULT_TAB
RESULT_OBJEC = RESULT_OBJEC
RESULT_STRUC = RESULT_STRUC
EXCEPTIONS
NO_PLVAR_FOUND = 1
NO_ENTRY_FOUND = 2
OTHERS = 3
.
IF RESULT_STRUC IS NOT INITIAL.
LOOP AT RESULT_OBJEC INTO RESULT_OBJEC_WA.
LS_HRP1001-SOBID = RESULT_OBJEC_WA-OBJID.
APPEND LS_HRP1001 TO LT_HRP1001_TEMP.
CLEAR:LS_HRP1001,RESULT_OBJEC_WA.
ENDLOOP.
SORT LT_HRP1001_TEMP.
DELETE ADJACENT DUPLICATES FROM LT_HRP1001_TEMP.
IF LT_HRP1001_TEMP IS NOT INITIAL.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE LT_HRP1001
FROM HRP1001
FOR ALL ENTRIES IN LT_HRP1001_TEMP
WHERE SOBID EQ LT_HRP1001_TEMP-SOBID
AND PLVAR EQ '01'
AND RSIGN EQ 'B'
AND RELAT EQ '002'
AND SCLAS EQ 'O'
AND BEGDA LE SY-DATUM
AND ENDDA GE SY-DATUM
.
LOOP AT RESULT_OBJEC INTO RESULT_OBJEC_WA.
LOOP AT LT_HRP1001 INTO LS_HRP1001 WHERE SOBID EQ RESULT_OBJEC_WA-OBJID.
GS_HRP1001-OBJID = LS_HRP1001-SOBID."子节点
GS_HRP1001-SOBID = LS_HRP1001-OBJID."父节点
GS_HRP1001-STEXT = RESULT_OBJEC_WA-STEXT.
GS_HRP1001-PRIOX = LS_HRP1001-PRIOX.
APPEND GS_HRP1001 TO GT_HRP1001.
ENDLOOP.
IF SY-SUBRC NE 0.
GS_HRP1001-OBJID = RESULT_OBJEC_WA-OBJID.
GS_HRP1001-SOBID = SPACE.
GS_HRP1001-STEXT = RESULT_OBJEC_WA-STEXT.
* GS_HRP1001-PRIOX = LS_HRP1001-PRIOX.
APPEND GS_HRP1001 TO GT_HRP1001.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架