<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>sung_hee.log</title>
        <link>https://velog.io/</link>
        <description>ABAP 개발자로 성장하는 중</description>
        <lastBuildDate>Tue, 18 Nov 2025 15:31:18 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>sung_hee.log</title>
            <url>https://velog.velcdn.com/images/sung_hee/profile/3b1fd73c-c402-43ff-b504-d464f7d89003/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. sung_hee.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sung_hee" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[SAP ABAP] selection screen toolbar btn 숨김 처리]]></title>
            <link>https://velog.io/@sung_hee/ABAP-selection-screen-toolbar-btn-%EC%88%A8%EA%B9%80-%EC%B2%98%EB%A6%AC</link>
            <guid>https://velog.io/@sung_hee/ABAP-selection-screen-toolbar-btn-%EC%88%A8%EA%B9%80-%EC%B2%98%EB%A6%AC</guid>
            <pubDate>Tue, 18 Nov 2025 15:31:18 GMT</pubDate>
            <description><![CDATA[<h1 id="rs_set_selscreen_status-펑션">RS_SET_SELSCREEN_STATUS 펑션</h1>
<h2 id="사용법">사용법</h2>
<pre><code>
DATA : lt_sc_exclude TYPE TABLE OF RSEXFCODE,
       ls_sc_exclude LIKE LINE OF lt_sc_exclude.

*-------시스템에 지정된 버튼 삭제-------------------
      &quot;ONLI : 실행버튼(F8)
       ls_exclude-fcode = &#39;ONLI&#39;.

       APPEND ls_sc_exclude TO lt_sc_exclude.

*-------function key를 통해 생성한 버튼 삭제-------
       &quot;SELECTION-SCREEN FUNCTION KEY 1.
       ls_exclude-fcode = &#39;FC01&#39;.

       APPEND ls_sc_exclude TO lt_sc_exclude.

       &quot;제외할 버튼 정보를 담은 인터널 테이블을 펑션의 파라미터로 넘김
       CALL FUNCTION &#39;RS_SET_SELSCREEN_STATUS&#39;
        EXPORTING
            p_status = sy-pfkey &quot;현재 활성화된 화면 상태(이름)
        TABLES
            p_exclude = lt_sc_exclude.
</code></pre><p>위의 코드 기준으로 lt_sc_exclude에 제외할 펑션 코드들을 담아서 RS_SET_SELSCREEN_STATUS 펑션에 p_exclude에 넘겨주면 된다.</p>
<p>se37으로 가서 해당 펑션의 정보를 확인해보면 좋다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SAP ABAP] selection screen에서 layout 불러오기, Layout Variant]]></title>
            <link>https://velog.io/@sung_hee/SAP-ABAP-selection-screen%EC%97%90%EC%84%9C-layout-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84</link>
            <guid>https://velog.io/@sung_hee/SAP-ABAP-selection-screen%EC%97%90%EC%84%9C-layout-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84</guid>
            <pubDate>Tue, 02 Sep 2025 10:28:10 GMT</pubDate>
            <description><![CDATA[<h1 id="개요">개요</h1>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/50be6eca-f050-4181-a015-c5f7ba8037d2/image.png" alt="">
selection screen에 parameters로 선언된 layout을 보게 되었다.
이게 도대체 무슨 의미인지 구글링을 해보았더니
사용자가 ALV 컬럼별 너비라던지, 순서 등을 커스텀하고 저장한 후 다음 이용시 그대로 LOAD하여 사용할 수 있도록 하는 기능이였다.</p>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/691b9c37-eb14-4852-aa79-91576d27074e/image.png" alt="">
쉽게 말해 위의 기능을 구현하는 것이라고 생각하면 쉽다.
실무에서 자주 사용하는 기능이라고 하니 알아두면 좋을 것이라고 생각하였다.</p>
<p>그럼 이 기능을 selection screen에서 구현해보자!</p>
<h1 id="구현코드">구현(코드)</h1>
<h2 id="top">top</h2>
<pre><code>( 생략 ...)

&quot;selection screen layout 관련
DATA : gs_layout TYPE salv_s_layout_info,
       gs_key    TYPE salv_s_layout_key.

( 생략 ...)
</code></pre><h2 id="s01">s01</h2>
<pre><code>( 생략 ...)

SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE TEXT-t02.

  PARAMETERS : pa_layo TYPE slis_vari.

SELECTION-SCREEN END OF BLOCK bl2.
</code></pre><p>TYPE이 slis_vari인 파라미터 생성</p>
<h2 id="main">main</h2>
<pre><code>( ... 생략 )

INITIALIZATION.
  PERFORM load_layout.

( ... 생략 )

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_layo.
  PERFORM f4_layout.

( ... 생략 )</code></pre><p>INITIALIZATION. 주기에서 레이아웃 정보를 불러오고
AT SELECTION-SCREEN ON VALUE-REQUEST에서 f4 이벤트 달아주기</p>
<p>로직은 FORM으로 뺏다.</p>
<h2 id="f01">f01</h2>
<pre><code>FORM load_layout .

  gs_key-report = sy-repid.
  gs_layout     = cl_salv_layout_service=&gt;get_default_layout( s_key    = gs_key
                                                              restrict = &#39;1&#39;    ).

  pa_layo = gs_layout-layout.

ENDFORM.

FORM f4_layout .

  gs_key-report = sy-repid.
  gs_layout     = cl_salv_layout_service=&gt;f4_layouts( s_key    = gs_key
                                                      restrict = &#39;1&#39;    ).

  pa_layo = gs_layout-layout.

ENDFORM.

FORM create_alv .

  CREATE OBJECT gcl_container
    EXPORTING
      container_name = &#39;GCL_CONTAINER&#39;.

  CREATE OBJECT gcl_grid
    EXPORTING
      i_parent = gcl_container.

  SET HANDLER : lcl_event_handler=&gt;handle_double_click      FOR gcl_grid,
                lcl_event_handler=&gt;handler_changed_finished FOR gcl_grid.

  CALL METHOD gcl_grid-&gt;register_edit_event
    EXPORTING
      i_event_id = gcl_grid-&gt;mc_evt_modified.

  gs_variant-report  = sy-repid.
  gs_variant-variant = pa_layo.

  CALL METHOD gcl_grid-&gt;set_table_for_first_display
    EXPORTING
      is_variant           = gs_variant
      is_layout            = gs_alv_layo
      i_save               = &#39;A&#39;
      it_toolbar_excluding = gt_exclude
    CHANGING
      it_outtab            = gt_data
      it_fieldcatalog      = gt_fcat.

ENDFORM.</code></pre><p>f01에서 주의 깊게 봐야할 부분은 set_table_for_first_display를 호출하기 전  사용자가 선택한 variant를 담아두는 부분이다.
 =&gt; gs_variant-variant = pa_layo.</p>
<p>이렇게 기능 구현이 끝났다.</p>
<h1 id="검증-및-확인">검증 및 확인</h1>
<h2 id="1-레이아웃을-저장하기">1. 레이아웃을 저장하기</h2>
<p>기능 확인을 위한 레이아웃을 생성해보자!
쉽게 ALV 툴바의 Variant 버튼을 이용했다
<img src="https://velog.velcdn.com/images/sung_hee/post/19ba76ca-b98c-41d0-9ed1-2ec2f0af5adf/image.png" alt="">
save Layout 버튼을 누르면
<img src="https://velog.velcdn.com/images/sung_hee/post/536fa1c6-5fcb-458e-9e6c-5ce2a61b24d1/image.png" alt="">
위와 같은 창이 뜨는데, layout명과 설명을 입력 후 adopt 버튼을 클릭( 또는 Enter )
<img src="https://velog.velcdn.com/images/sung_hee/post/736fbe44-edec-43ec-899f-daca6fb4fb33/image.png" alt="">
현재 ALV의 레이아웃이 저장된다.</p>
<h2 id="2-저장한-레이아웃을-잘-불러오는지-확인">2. 저장한 레이아웃을 잘 불러오는지 확인</h2>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/d2e88a7a-8c8a-4c26-b470-721fa461faa0/image.png" alt="">
서치헬프가 잘 붙어있는 모습을 확인 할 수 있었고
<img src="https://velog.velcdn.com/images/sung_hee/post/94249b53-c65a-467e-b057-aa93726bbf93/image.png" alt="">
저장해 둔 레이아웃을 잘 가지고 오는 것도 확인할 수 있었다.
<img src="https://velog.velcdn.com/images/sung_hee/post/def845a9-0315-45d1-90a0-91a88f645722/image.png" alt="">
원하는 레이아웃을 선택하고 실행시키면
<img src="https://velog.velcdn.com/images/sung_hee/post/8816f764-409f-4010-beb7-4c944a3d3a01/image.png" alt="">
불러 온 레이아웃이 ALV에 잘 적용된 모습을 확인할 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SAP ABAP] SAP Dynpro lifecycle, PAI를 타면서 값이 화면 기준으로 할당 되는 문제]]></title>
            <link>https://velog.io/@sung_hee/SAP-%EA%B0%9C%EB%B0%9C-SAP-Dynpro-lifecycle-PAI%EB%A5%BC-%ED%83%80%EB%A9%B4%EC%84%9C-%EA%B0%92%EC%9D%B4-%ED%99%94%EB%A9%B4-%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C-%ED%95%A0%EB%8B%B9-%EB%90%98%EB%8A%94-%EB%AC%B8%EC%A0%9C</link>
            <guid>https://velog.io/@sung_hee/SAP-%EA%B0%9C%EB%B0%9C-SAP-Dynpro-lifecycle-PAI%EB%A5%BC-%ED%83%80%EB%A9%B4%EC%84%9C-%EA%B0%92%EC%9D%B4-%ED%99%94%EB%A9%B4-%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C-%ED%95%A0%EB%8B%B9-%EB%90%98%EB%8A%94-%EB%AC%B8%EC%A0%9C</guid>
            <pubDate>Sat, 30 Aug 2025 14:35:09 GMT</pubDate>
            <description><![CDATA[<h1 id="문제">문제</h1>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/17a85193-93e3-419e-bac5-8d65395b3eb8/image.png" alt=""></p>
<ul>
<li>ALV 더블 클릭 이벤트에서 화면 필드(그림에서 1번, 2번) 값을 변경하였으나 특정 필드(1번)만 반영이 되지 않음</li>
<li>디버깅 결과 PAI를 타면서 특정 필드의 값이 프로그램 변수로 set 되는 것이 아니라 화면에 있는 값이 반영되는 문제 발견</li>
</ul>
<h1 id="원인">원인</h1>
<pre><code>- 문제가 생기는 화면 필드는 입력 가능 상태(input = ON)임
- SAP Dynpro lifecycle에 의해 내부적으로 값이 할당됨</code></pre><h1 id="해결방법">해결방법</h1>
<pre><code>- 인풋 필드 변수에 값을 할당한 다음 PAI를 타기 전에 화면 필드의 속성을 입력 불가능 상태로 변경함</code></pre><h1 id="코드">코드</h1>
<pre><code>FORM calc_po.

  CHECK gs_data IS NOT INITIAL.

  DATA : lv_sum TYPE zecho0722t0102-netwr.

  lv_sum = gs_data-menge * gs_data-netwr.

  gs_input-ip_ebeln = gs_data-ebeln.

&quot;해당 필드를 입력이 불가능하도록 set
   LOOP AT SCREEN.
    IF screen-name = &#39;GS_INPUT-IP_EBELN&#39;.
      screen-input = 0.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

  gs_total-to_meins = gs_data-meins.
  gs_total-to_menge = gs_data-menge.
  gs_total-to_sum   = lv_sum.
  gs_total-to_waers = gs_data-waers.

(코드 생략...)

ENDFORM.</code></pre><h1 id="결과">결과</h1>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/e99bd1e6-ba60-4844-980e-8f4e4d5d869f/image.gif" alt="">
녹화 프로그램 이슈로 마우스 포인터가 이상하게 녹화되었지만 원하는 대로 동작하게 된 모습</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SAP ABAP] 툴바 텍스트 잘림 현상 해결]]></title>
            <link>https://velog.io/@sung_hee/SAP-%EA%B0%9C%EB%B0%9C-%ED%88%B4%EB%B0%94-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9E%98%EB%A6%BC-%ED%98%84%EC%83%81-%ED%95%B4%EA%B2%B0</link>
            <guid>https://velog.io/@sung_hee/SAP-%EA%B0%9C%EB%B0%9C-%ED%88%B4%EB%B0%94-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9E%98%EB%A6%BC-%ED%98%84%EC%83%81-%ED%95%B4%EA%B2%B0</guid>
            <pubDate>Mon, 25 Aug 2025 23:32:02 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/sung_hee/post/bf99b85e-6c2e-49d6-924c-c565f00e527c/image.JPG" alt="">
툴바에 커스텀 버튼을 생성 하다보면 위와 같이 텍스트가 잘리는 경우가 발생한다.
텍스트 첫 부분에 공백을 주는 것만으로 문제를 해결할 수 있다.</p>
<pre><code>    (코드 생략... )

  ls_toolbar-function  = &#39;EDITMODE&#39;.
  ls_toolbar-icon      = icon_toggle_display_change.
  ls_toolbar-text      = &#39; 조회 ↔ 수정&#39;. &quot;이 부분!! 텍스트 맨 앞에 공백!!
  ls_toolbar-butn_type =  0.

      (코드 생략... )
</code></pre><p><img src="https://velog.velcdn.com/images/sung_hee/post/1b36ee72-2fdc-439e-969f-24ae50b0cf96/image.JPG" alt="">
문제 해결!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SAP ABAP] 필드별 색상 번갈아서 나타내기]]></title>
            <link>https://velog.io/@sung_hee/SAP-ABAP-%ED%95%84%EB%93%9C%EB%B3%84-%EC%83%89%EC%83%81-%EB%B2%88%EA%B0%88%EC%95%84%EC%84%9C-%EB%82%98%ED%83%80%EB%82%B4%EA%B8%B0</link>
            <guid>https://velog.io/@sung_hee/SAP-ABAP-%ED%95%84%EB%93%9C%EB%B3%84-%EC%83%89%EC%83%81-%EB%B2%88%EA%B0%88%EC%95%84%EC%84%9C-%EB%82%98%ED%83%80%EB%82%B4%EA%B8%B0</guid>
            <pubDate>Mon, 25 Aug 2025 22:20:48 GMT</pubDate>
            <description><![CDATA[<h1 id="문제">문제</h1>
<ul>
<li>필드에 따라 색상이 번갈아서 나와야 함.</li>
<li>zebra mode는 색상이 번갈아서 나오긴 하지만 디폴드 색이 정해져 있기 때문에 원하는 색상을 주기는 어려움</li>
</ul>
<h1 id="아이디어">아이디어</h1>
<ul>
<li>lvc_t_scol를 통해 컬럼별 색상주기</li>
<li>FIELD-SYBOLS : LOOP안에서 ASSIGNING문을 통해 동적 접근</li>
<li>loop의 tabix가 짝수, 홀수 임에 따라 다른 색상 주기</li>
</ul>
<h1 id="코드">코드</h1>
<h2 id="top">top</h2>
<p>레코드 별 개별 필드 속성을 지정해주기 위해 lvc_t_scol 타입의 필드 선언</p>
<pre><code>DATA : BEGIN OF gs_data,
         carrid     TYPE spfli-carrid,
         connid     TYPE spfli-connid,
         fldate     TYPE sflight-fldate,
         price      TYPE sflight-price,
         ( 생략... )
         color      TYPE lvc_t_scol, &quot;
       END OF gs_data,</code></pre><h2 id="f01">f01</h2>
<h3 id="--set_color--조건에-맞는-필드-파악">- set_color : 조건에 맞는 필드 파악</h3>
<pre><code>FORM set_color .

  IF pa_lo = &#39;X&#39;.

    DATA : lv_tabix TYPE sy-tabix.

    &quot; 필드 심볼 선언, 해당 폼에서만 사용하기 때문에 local로 선언
    &quot; loop를 돌며 레코드의 특정 필드를 파악하기 위해 사용
    FIELD-SYMBOLS: &lt;lf_data&gt;  TYPE any,
                   &lt;lf_field&gt; TYPE any.

    LOOP AT gt_data ASSIGNING &lt;lf_data&gt;.

      lv_tabix = sy-tabix.
      REFRESH gs_data-color.

      &quot; 메인 로직
      ASSIGN COMPONENT &#39;CONNID&#39; OF STRUCTURE &lt;lf_data&gt; TO &lt;lf_field&gt;.
      IF sy-subrc = 0.
        IF lv_tabix MOD 2 = 0.
          PERFORM fill_color TABLES gs_data-color
                             USING : &#39;CONNID&#39; 1 1 0.

        ELSE.
          PERFORM fill_color TABLES gs_data-color
                             USING : &#39;CONNID&#39; 1 0 0.
        ENDIF.

        MODIFY gt_data FROM gs_data INDEX lv_tabix
                                    TRANSPORTING color.

      ENDIF.

      ASSIGN COMPONENT &#39;PRICE&#39; OF STRUCTURE &lt;lf_data&gt; TO &lt;lf_field&gt;.
      IF sy-subrc = 0.
        IF lv_tabix MOD 2 = 0.
          PERFORM fill_color TABLES gs_data-color
                             USING : &#39;PRICE&#39; 3 1 0.

        ELSE.
          PERFORM fill_color TABLES gs_data-color
                             USING : &#39;PRICE&#39; 3 0 0.
        ENDIF.

        MODIFY gt_data FROM gs_data INDEX lv_tabix
                                    TRANSPORTING color.

      ENDIF.

    ( 코드 생략 ... )

    ENDLOOP.

  ENDIF.

ENDFORM.</code></pre><h3 id="--fill_color--color-필드에-색상-데이터-추가">- fill_color : color 필드에 색상 데이터 추가</h3>
<pre><code>FORM fill_color  TABLES   pt_color TYPE lvc_t_scol
                 USING    pv_field
                          pv_color TYPE i
                          pv_int   TYPE i
                          pv_inv   TYPE i.

  DATA : ls_color TYPE lvc_s_scol.

  CLEAR ls_color.

  ls_color-fname     = pv_field.
  ls_color-color-col = pv_color. &quot;color 코드
  ls_color-color-int = pv_int.   &quot;intensified off
  ls_color-color-inv = pv_inv.   &quot;inverse off

  APPEND ls_color TO pt_color.

ENDFORM.</code></pre><h3 id="--fcat에-color-필드-물려주기">- fcat에 color 필드 물려주기</h3>
<pre><code>FORM set_fcat_layout .

  ( ... )

  gs_layout-ctab_fname = &#39;COLOR&#39;. &quot;이 부분을 빼먹는 일이 잦으니 주의!

  ( ... )

 ENDFORM.</code></pre><h1 id="결과">결과</h1>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/f860e980-aa26-4e9b-8b70-181158a2b331/image.png" alt="">
생각한대로 예쁘게 나와 준 모습</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SAPGUI] 개발시 생산성을 높히는 Tip과 단축키, T-code 모음]]></title>
            <link>https://velog.io/@sung_hee/SAPGUI-%EA%B0%9C%EB%B0%9C%EC%8B%9C-%EC%83%9D%EC%82%B0%EC%84%B1%EC%9D%84-%EB%86%92%ED%9E%88%EB%8A%94-Tip%EA%B3%BC-%EB%8B%A8%EC%B6%95%ED%82%A4-T-code-%EB%AA%A8%EC%9D%8C</link>
            <guid>https://velog.io/@sung_hee/SAPGUI-%EA%B0%9C%EB%B0%9C%EC%8B%9C-%EC%83%9D%EC%82%B0%EC%84%B1%EC%9D%84-%EB%86%92%ED%9E%88%EB%8A%94-Tip%EA%B3%BC-%EB%8B%A8%EC%B6%95%ED%82%A4-T-code-%EB%AA%A8%EC%9D%8C</guid>
            <pubDate>Mon, 25 Aug 2025 21:06:16 GMT</pubDate>
            <description><![CDATA[<p>※ OS : windows 기준
계속 추가해나갈 예정</p>
<h1 id="단축키">단축키</h1>
<h2 id="주석-관련">주석 관련</h2>
<h3 id="✔-주석-처리">✔ 주석 처리</h3>
<ul>
<li>단축키 : ctrl + , (쉼표)</li>
</ul>
<h3 id="✔-주석-해체">✔ 주석 해체</h3>
<ul>
<li>단축키 : ctrl + . (마침표)</li>
</ul>
<h2 id="선택-관련">선택 관련</h2>
<h3 id="✔-단어-선택">✔ 단어 선택</h3>
<ul>
<li>단축키 : Ctrl + 클릭<h3 id="✔-code-다중-라인-선택">✔ code) 다중 라인 선택</h3>
<ul>
<li>단축키 : Alt + T 키 <strong>누르면서</strong> 마우스 드래그<img src="https://velog.velcdn.com/images/sung_hee/post/e083a818-e357-4169-a968-d5c9a19b74d1/image.JPG" alt=""><h3 id="✔-alvtable-다중-record-선택">✔ ALV,table) 다중 record 선택</h3>
</li>
</ul>
</li>
<li>단축키 : Ctrl + Y</li>
</ul>
<h2 id="대소문자-변경">대소문자 변경</h2>
<h3 id="✔-대문자-변경">✔ 대문자 변경</h3>
<ul>
<li>단축키 : ctrl + u<h3 id="✔-소문자-변경">✔ 소문자 변경</h3>
</li>
<li>단축키 : ctrl + l</li>
</ul>
<h2 id="이동">이동</h2>
<h3 id="✔-선언부-이동">✔ 선언부 이동</h3>
<ul>
<li>단축키 : 해당 변수 또는 함수 더블 클릭
  ※ 선언되어 있지 않은 것(Form 등)을 더블 클릭시 이동하여 선언 가능</li>
</ul>
<h1 id="개발-tip">개발 TIP</h1>
<h2 id="실행은-t-code를-통해서">실행은 T-CODE를 통해서</h2>
<p>-&gt; 코드단에서 실행을 할 경우 덤프가 떨어지면 창이 닫힘. 그럼 다시 SE80가서 코드를 열어야 하는 귀찮음 발생
! 따라서 프로그램 개발시 T-code를 먼저 붙이고 티코드를 통해 실행시키는게 더 효율적이다.</p>
<h3 id="✔-리포트-프로그램-티코드-생성하기">✔ 리포트 프로그램 티코드 생성하기</h3>
<p><a href="https://velog.io/@sung_hee/SAP%EA%B0%9C%EB%B0%9C-%EB%A6%AC%ED%8F%AC%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%ED%8B%B0%EC%BD%94%EB%93%9C-%EB%8B%AC%EA%B8%B0">클릭시 해당 게시글로 이동</a></p>
<h2 id="디버깅">디버깅</h2>
<h3 id="✔-기본-디버깅-버튼">✔ 기본 디버깅 버튼</h3>
<ul>
<li>F5: 한 줄 실행</li>
<li>F6: 해당 명령문이 프로시서 호출일 경우 내부로 진입하지 않고 다음 명령문으로 이동
  -&gt; 프로시저 내부의 상세 코드를 볼 필요가 없을 때 유용</li>
<li>F7: 빠져나오기
  -&gt; 프로시저 내부 디버깅을 중단하고 상위 레벨의 코드로 돌아갈 때 사용</li>
<li>F8: 다음 break point로 이동, 다음 BP가 없으면 쭉 내림
  -&gt; 빠르게 이동할 때 유용</li>
</ul>
<h3 id="✔-watch-point">✔ watch point</h3>
<p>-&gt; (추가로 작성할 예정)</p>
<h1 id="개발시-유용한-t-code-prg">개발시 유용한 T-code, prg</h1>
<h2 id="t-code">T-code</h2>
<h3 id="✔-se80--개발">✔ se80 : 개발</h3>
<pre><code>=&gt; 이곳에서 더블 클릭 이벤트를 이용하여 해당하는 트랜잭션으로 이동 가능</code></pre><h3 id="✔-se11--각종-abap-dictionary-관리">✔ se11 : 각종 abap dictionary 관리</h3>
<pre><code>=&gt; table, data element, str 등등)</code></pre><h3 id="✔-se37--펑션fuction-확인-및-실행테스트-가능">✔ se37 : 펑션(Fuction) 확인 및 실행(테스트) 가능</h3>
<pre><code>=&gt; 일반 펑션, BAPI 등 모든 종류의 펑션 실행 가능</code></pre><h3 id="✔-se38--프로그램-관련">✔ se38 : 프로그램 관련</h3>
<h4 id="rs_abap_source_scan">RS_ABAP_SOURCE_SCAN</h4>
<pre><code>=&gt;문자열 검색을 통한 추적 가능</code></pre><h4 id="rs_abap_source_compare">RS_ABAP_SOURCE_COMPARE</h4>
<pre><code>=&gt;소스 코드 비교</code></pre><h1 id="개발시-유용한-사이트">개발시 유용한 사이트</h1>
<ul>
<li>SAP STANDARD TABLE 검색
<a href="https://leanx.eu/en/sap/table/search">https://leanx.eu/en/sap/table/search</a></li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SAP ABAP] 리포트 프로그램 티코드 달기]]></title>
            <link>https://velog.io/@sung_hee/SAP%EA%B0%9C%EB%B0%9C-%EB%A6%AC%ED%8F%AC%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%ED%8B%B0%EC%BD%94%EB%93%9C-%EB%8B%AC%EA%B8%B0</link>
            <guid>https://velog.io/@sung_hee/SAP%EA%B0%9C%EB%B0%9C-%EB%A6%AC%ED%8F%AC%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%ED%8B%B0%EC%BD%94%EB%93%9C-%EB%8B%AC%EA%B8%B0</guid>
            <pubDate>Fri, 01 Aug 2025 16:34:22 GMT</pubDate>
            <description><![CDATA[<h1 id="티코드-생성">티코드 생성</h1>
<p>※ 개발 편의상 t-code se80에서 작업했음.</p>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/e74871bc-de77-4367-a39f-76c32dd6d322/image.png" alt=""></p>
<ol>
<li>보통 리포트 프로그램의 티코드는 프로그램명과 똑같이 따라가기 때문에 
미리 프로그램명을 복사해두고 시작하면 좋음. 
티코드를 달고 싶은 프로그램명을 우클릭 -&gt; Create -&gt; Transaction 클릭</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/08c9d6c8-bdf2-4173-9cc7-51635f124069/image.png" alt="">
2. 필수 값 입력 후,
Start object를 Program and selection screen(report transaction) 선택 후 확인 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/dfb92d65-7e98-47df-acd4-e92650fb990d/image.png" alt="">
3. Program에 해당 프로그램명을 똑같이 작성한 뒤
아래 GUI support 3가지 체크박스 모두 활성화</p>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/cc64b019-1f4c-4487-83f9-269ff60bc7b3/image.png" alt="">
4. 상단의 저장 버튼 클릭 후 필요하다면 작업중인 패키지나 CTS 달아주면 됨.</p>
<h1 id="티코드-실행">티코드 실행</h1>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/f9df64da-5a55-4f3d-8e5c-bfa9f0f5d66f/image.png" alt="">
-&gt; SAP GUI 상단의 Command Field에 티코드를 입력해보면 잘 실행되는 것을 확인 할 수 있음.</p>
<p>※ 참고</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[ABAP 써티] SAP Certification Exam 응시 후기, 응시 후 계정 문제, 자격 번호 문의]]></title>
            <link>https://velog.io/@sung_hee/ABAP-%EC%8D%A8%ED%8B%B0-SAP-Certification-Exam-%EC%9D%91%EC%8B%9C-%ED%9B%84%EA%B8%B0-%EC%9E%90%EA%B2%A9-%EB%B2%88%ED%98%B8-%EB%AC%B8%EC%9D%98</link>
            <guid>https://velog.io/@sung_hee/ABAP-%EC%8D%A8%ED%8B%B0-SAP-Certification-Exam-%EC%9D%91%EC%8B%9C-%ED%9B%84%EA%B8%B0-%EC%9E%90%EA%B2%A9-%EB%B2%88%ED%98%B8-%EB%AC%B8%EC%9D%98</guid>
            <pubDate>Thu, 19 Sep 2024 05:41:29 GMT</pubDate>
            <description><![CDATA[<h1 id="c_abapd_2309-응시-후기">C_ABAPD_2309 응시 후기</h1>
<p>써티 예약은 자격 검증이 완료되면 SAP에서 첨부해준 pdf 파일에 따라 응시 예약을 잡으면 된다!
일정 변경을 하고 싶으면 최소 24시간 전에 변경할 것!!</p>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/f3dccde8-80f5-4aea-ad26-a0cca794b807/image.png" alt="">
시험 치기 전에 반드시 응시 환경 테스트 해 볼 것!!
전부 초록색이 떠야한다!!</p>
<p>나는 맥 환경에서 응시했는데 문제없이 시험을 칠 수 있었다.</p>
<p>예약한 시간 15분 전에 시험 버튼이 활성화되고 버튼 누르는 순간 시험 프로세스가 진행된다.</p>
<p>처음에 줌으로 면접관과 1:1으로 응시자 확인(신분증, 손에 뭐 적어둔 건 없는지), 장소 확인(혼자 있는지, 책상위는 깨끗한지), 전자기기 OFF 확인 등이 진행된다.</p>
<p>전부 웹캠으로 보여주면 되고, 나는 신분증으로 여권을 준비했으나 세컨 ID까지 요구해서 주민등록증도 보여줬다.</p>
<p>확인 절차가 끝나면 시험이 진행됨.
처음에 언어 설정하는 창이 뜨는데 아무생각 없이 한국어로 설정했다가,, 꽤나 당황했었다.</p>
<p>문제는 덤프랑 동일했었음. 
(덤프만 있으면 어렵지 않게 합격 가능하다!, 근데 덤프 답을 맹신하진 말 것.)</p>
<p>응시 시간은 최대 3시간이지만 제출하는 순간 시험이 종료되고 바로 합/불 여부가 나온다.
면접관님의 축하를 받으며 시험 종료.
<img src="https://velog.velcdn.com/images/sung_hee/post/913176e8-c842-431d-923f-2c38a572e781/image.jpeg" alt=""></p>
<p>써티에 합격하면 뱃지도 받을 수 있다 :)
<img src="https://velog.velcdn.com/images/sung_hee/post/e89822dd-fc36-4a05-a750-5a365965e780/image.png" alt=""></p>
<h1 id="써티-응시-후-계정-문제">써티 응시 후 계정 문제</h1>
<p>나는 써티 응시하고 아래와 같은 SAP 인증 결과를 SAP Universal ID 계정과 일치시킬 수 없으니 계정 조치를 취해야한다는 알림 메일이 계속 왔었다.
너무 자주 메일이 오니깐 좀 무서웠,,,음,,
<img src="https://velog.velcdn.com/images/sung_hee/post/5e6a6267-696e-4b67-ae13-cfce7cd4f766/image.png" alt="">
나 같은 경우에는 시간이 지나니깐(한 2~3일?) 알아서 해결이 됐었다.
(여기저기 문의해도 빠르게 답변을 받기 어려웠다.)</p>
<h1 id="자격-번호-문의">자격 번호 문의</h1>
<ol>
<li><a href="https://support.learning.sap.com/#/">SAP User Support Center</a>로 가서
(클릭시 링크 이동)</li>
<li>회원가입 및 로그인</li>
<li>일반 문의(Learning and Certification Advice) 카테고리 선택 후 한글로 문의 진행</li>
<li>담당자님의 답변으로 자격 번호 확인
<img src="https://velog.velcdn.com/images/sung_hee/post/b1d712ac-56a9-4a27-9122-435180a76ece/image.png" alt=""></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[디버깅] Watch Point]]></title>
            <link>https://velog.io/@sung_hee/%EB%94%94%EB%B2%84%EA%B9%85-Watch-Point</link>
            <guid>https://velog.io/@sung_hee/%EB%94%94%EB%B2%84%EA%B9%85-Watch-Point</guid>
            <pubDate>Thu, 12 Sep 2024 05:58:46 GMT</pubDate>
            <description><![CDATA[<p>기술 면접을 보면서 <strong>Watch Point</strong>라는 디버깅 기능을 알게되었다.
와치포인트란 내가 타겟해서 보고 있는 변수에 조건을 걸어줘서 조건에 맞을 경우 알아서 멈춰주는 기능이다.</p>
<p>지금까지는 내가 직접 변수들의 값을 확인하면서 내가 원하는 케이스가 될 때까지 돌려줬는데, WatchPoint를 사용하면 디버깅 속도가 훨씬 빨라질 것 같았다.</p>
<p>나중에 실무에 투입되게 되면 꼭 사용해보고 사용법을 이곳에 정리해두어야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[SAP ABAP 캐시 삭제]]></title>
            <link>https://velog.io/@sung_hee/%EC%BA%90%EC%8B%9C-%EB%82%A0%EB%A6%AC%EB%8A%94-%EB%B2%95</link>
            <guid>https://velog.io/@sung_hee/%EC%BA%90%EC%8B%9C-%EB%82%A0%EB%A6%AC%EB%8A%94-%EB%B2%95</guid>
            <pubDate>Wed, 04 Sep 2024 09:48:21 GMT</pubDate>
            <description><![CDATA[<p>종종 남아있는 캐시 때문에 프로그램이 오동작하는 경우가 발생한다.</p>
<p>그럴때마다 캐시를 비워주는 것만으로도 큰 도움이 되기 때문에 기록하는 캐시 날리는 법</p>
<h1 id="캐시-날리는-법">캐시 날리는 법</h1>
<ol>
<li>T-Code SE38으로 이동하여 Program 인풋필드에 BALVBUFDEL을 입력하여 실행한다.
<img src="https://velog.velcdn.com/images/sung_hee/post/bf4f2919-966c-4c7d-8d4a-b49b0e97c72d/image.png" alt=""></li>
</ol>
<ol start="2">
<li>간단하게 캐시 삭제 완료✨</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[FI/CO] Account(계정), Cost Element(원가요소), 거래 기록 과정, 총계정원장, 전기(Posting)]]></title>
            <link>https://velog.io/@sung_hee/FICO-Account%EA%B3%84%EC%A0%95-%EA%B8%B0%EC%97%85%EA%B1%B0%EB%9E%98-%EA%B8%B0%EB%A1%9D-%EA%B3%BC%EC%A0%95-%EC%B4%9D%EA%B3%84%EC%A0%95%EC%9B%90%EC%9E%A5-%EC%A0%84%EA%B8%B0Posting</link>
            <guid>https://velog.io/@sung_hee/FICO-Account%EA%B3%84%EC%A0%95-%EA%B8%B0%EC%97%85%EA%B1%B0%EB%9E%98-%EA%B8%B0%EB%A1%9D-%EA%B3%BC%EC%A0%95-%EC%B4%9D%EA%B3%84%EC%A0%95%EC%9B%90%EC%9E%A5-%EC%A0%84%EA%B8%B0Posting</guid>
            <pubDate>Fri, 23 Aug 2024 16:18:28 GMT</pubDate>
            <description><![CDATA[<h1 id="1-account계정">1. Account(계정)</h1>
<h2 id="11-계정이란">1.1 계정이란?</h2>
<ul>
<li>기업 재산이 어떠한 <strong>항목</strong>이 어떻게 변동 되었는지 <strong>구분</strong>하고 기록하고 계산하는 단위</li>
<li>현금, 예금, 미수금, 선급금, 상품, 원재료, 토지, 건물, 자본금 등</li>
</ul>
<h2 id="12-sap-account-type5가지">1.2 SAP Account Type(5가지)</h2>
<ul>
<li><p>S : G/L 계정(General Ledger Account)
  -&gt; 총계정원장에 포함되는 전통적인 회계의 계정 과목/코드
  ※ ledger : (은행·사업체 등에서 거래 내역을 적은) 원장
  <img src="https://velog.velcdn.com/images/sung_hee/post/04a17cf9-a1a3-4859-ad2d-30eec83dc81b/image.png" alt=""></p>
</li>
<li><p>D : Customer(판매 거래처, 채권)
  -&gt; FD01, FD02, FD03</p>
</li>
<li><p>K : Vendor(구매 거래처, 채무)
  -&gt; FK01, FK02, FK03</p>
</li>
<li><p>A : Asset(고정 자산)
  -&gt; AS01, AS02, AS03, AS05(잠금)</p>
</li>
<li><p>M : Material(재고 자산)</p>
</li>
</ul>
<p>※ T-Code : 1은 등록, 2는 갱신, 3은 조회</p>
<h2 id="13-sap-account-특징">1.3 SAP Account 특징</h2>
<ul>
<li>계정 유형(Account Type)별로 계정 마스터가 존재, 마스터에 회계 계정이 연결되어 최종적으로 Sub-ledger(Subsidiary ledger : 보조 원장)의 원장 관리 진행
  ※ Sub-ledger
   : 총계정원장의 일부 계정과 관련된 거래 내역을 <strong>세부적으로 기록</strong>하는 장부<pre><code> =&gt; 총계정원장의 기록을 보충</code></pre></li>
<li>Account Type D,K,A인 코드를 계정 코드인 것처럼 기표를 하면, 그와 연결이 되는 계정코드(G/L Account)는 자동으로 결정되는 방식</li>
</ul>
<h1 id="2-원가-요소cost-element">2. 원가 요소(Cost Element)</h1>
<ul>
<li>FI에서는 계정, CO에서는 원가 요소라고 표현
  ※ S/4 HANA로 변경됨에 따라 CO/FI의 경계가 무너지긴 했지만 아직도 개념은 따로 존재</li>
<li>FI의 계정과 동일하나, 일반적으로 원가요소는 손익 계정(수익, 비용)만 존재.</li>
<li>보통 원가 또는 비용 계정을 의미.</li>
<li>G/L Account내에서 <strong>G/L Account Type</strong>과 <strong>Cost Element Category(원가요소범주) 속성</strong>을 통해서 관리하고 있음.
<img src="https://velog.velcdn.com/images/sung_hee/post/f4199e2a-7795-43ef-9305-98ca5519a2e9/image.png" alt=""></li>
<li>Cost Element Category를 1번으로 지정한 경우 비용 요소로 등록됨.</li>
</ul>
<h2 id="1차-원가-요소">1차 원가 요소</h2>
<ul>
<li><strong>FI 전표가 발생할 때 CO에도 동시에 발생하는 수익/비용을 의미.</strong></li>
<li>1차 원가 요소를 하나 생성하기 위해서는 반드시 FI에서 먼저 계정(Account)를 생성해야함
  -&gt; FI/CO 모두 동일한 손익 계정을 사용하기 위함<h2 id="2차-원가-요소">2차 원가 요소</h2>
</li>
<li>CO에서만 사용하는 원가 요소를 의미</li>
<li><strong>배부(Allocation), 정산(Settlement)의 결과를 각 CO Object에 반영(Posting)하기 위해 사용</strong></li>
<li>CO Object에만 반영되며, 시산표에는 반영되지 않는 것이 원칙(예외 존재 가능)</li>
</ul>
<h2 id="수익-요소revenue-element">수익 요소(Revenue Element)</h2>
<ul>
<li>Cost Element Category를 11(매출), 12(매출 차감)등으로 지정한 경우 Profitability Analysis(수익성 분석, CO-PA)와 연관이 됨.
  -&gt; 수익성 세그먼트 입력이 필수가 됨.</li>
<li>일반적으로 11의 경우 SD의 billing(대금 청구)를 통해 CO-PA에 반영 됨.     </li>
</ul>
<h1 id="3-기업-거래의-기록-과정">3. 기업 거래의 기록 과정</h1>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/07e76a47-8082-4426-839e-a20554956ca6/image.png" alt=""></p>
<ol>
<li>회계 거래 발생</li>
<li>분개장에 거래 정보를 분개</li>
<li>분개장 정보를 통해 총계정원장 작성 (전기)</li>
<li>총계정원장을 바탕으로 손익계산서, 재무상태표 작성</li>
</ol>
<p>[용어 정리]</p>
<ul>
<li>분개 : 회계 거래를 발생 시간에 따라 차변과 대변에 기록하는 행위</li>
<li>전기 : 분개된 분개장의 내역을 계정별로 정리하는 행위</li>
</ul>
<h1 id="4-총계정원장">4. 총계정원장</h1>
<ul>
<li>각 계정과목별 변동 내역을 정리한 장부</li>
<li>기업 회계에 관련된 <strong>모든 계정(자산,부채,자본,수익,비용)</strong> 을 기록한 문서</li>
<li>기업의 거래를 계정 단위로 기록하여 회사의 재무 상태의 틀을 제공</li>
<li>실무에서는 회계원장이라고도 함</li>
</ul>
<p>※ 총계정원장 작성시, 분개장의 상대되는 계정 과목을 기입함
    -&gt; <strong>증가액은 차변에, 감소액은 대변에 기입</strong>
    -&gt; 분개한 내용을 총계정원장에(각 해당 계정에) 옮겨 적는 절차를 <strong>전기(Posting)</strong>이라고 함.</p>
<h2 id="총계정원장을-왜-사용하는가">총계정원장을 왜 사용하는가?</h2>
<ol>
<li>각 계정과목의 증감을 추적, 현재의 잔액을 정확하게 반영</li>
<li>회사의 재무 상태를 정확하게 파악하고, 필요한 재무 분석 및 의사 결정을 지원하는데 도움.</li>
</ol>
<p>-&gt; 분개장(아래 이미지)을 보면 각 계정과목에 대한 변동을 한눈에 파악하기 어려움
<img src="https://velog.velcdn.com/images/sung_hee/post/a297631e-c681-4db9-bb6e-c42a31db85f8/image.png" alt=""></p>
<p>-&gt; 총계정원장(아래 이미지)을 보면 각 계정과목의 변동 내용을 한눈에 파악하기 용이해짐.
<img src="https://velog.velcdn.com/images/sung_hee/post/d013a785-c2e2-4301-9910-d7fbae880a77/image.png" alt=""></p>
<figcaption style="text-align:center; font-size:15px; color:#808080;">
    "근데 사실 위의 이미지는 계정별원장(현금)임"
</figcaption>
※ 계정별원장 : 총계정원장의 내용을 계정별로 분류한 장부

<p><img src="https://velog.velcdn.com/images/sung_hee/post/779788dc-2c6e-4b34-8be1-e7e5215cf861/image.png" alt="">
위의 이미지에서 총계정원장의 각 계정별로 따로 보면 계정별원장이 되는거고 모든 계정을 다 보면 총계정원장이 되는거임.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[ABAP 써티] SAP Certification Exam 응시권 구매 + 응시료 할인 팁]]></title>
            <link>https://velog.io/@sung_hee/ABAP-%EC%8D%A8%ED%8B%B0-SAP-Certification-Exam-%EC%9D%91%EC%8B%9C%EA%B6%8C-%EA%B5%AC%EB%A7%A4-%ED%95%A0%EC%9D%B8</link>
            <guid>https://velog.io/@sung_hee/ABAP-%EC%8D%A8%ED%8B%B0-SAP-Certification-Exam-%EC%9D%91%EC%8B%9C%EA%B6%8C-%EA%B5%AC%EB%A7%A4-%ED%95%A0%EC%9D%B8</guid>
            <pubDate>Thu, 15 Aug 2024 07:07:43 GMT</pubDate>
            <description><![CDATA[<h1 id="할인-쿠폰-받기">할인 쿠폰 받기</h1>
<ol>
<li><p>카카오톡 &quot;SAP교육사업본부&quot; 친구 추가하기
<img src="https://velog.velcdn.com/images/sung_hee/post/0b787719-f78b-47f6-b8b2-a65ba3088674/image.jpeg" alt=""><img src="https://velog.velcdn.com/images/sung_hee/post/b48e7bc8-de98-47a0-8276-f7ab1aca80f0/image.jpeg" alt=""></p>
</li>
<li><p>SAP교육사업본부 채널에서 할인 쿠폰 받기
<img src="https://velog.velcdn.com/images/sung_hee/post/42cb533f-50b5-469e-a386-a44bd1e55025/image.jpeg" alt=""></p>
</li>
<li><p>할인 쿠폰 번호 복사해두기
<img src="https://velog.velcdn.com/images/sung_hee/post/c5b97098-259d-406d-a435-bfff962c24fb/image.jpeg" alt=""></p>
</li>
</ol>
<h1 id="아밥-응시권-구매하는-법">아밥 응시권 구매하는 법</h1>
<p><em><strong>※ 진행 속도가 느리니 인내심을 갖고 진득하게 기다리기</strong></em></p>
<ol>
<li><p><a href="https://training.sap.com/course/cer001-sap-certification-exam-one-attempt-certification-online-010-kr-en/?">SAP Training 사이트</a>로 이동 후 장바구니에 응시권을 담고 Campaign Code에 복사해 둔 쿠폰 번호 입력 후 적용 버튼 클릭
<img src="https://velog.velcdn.com/images/sung_hee/post/54723fbf-bdcf-4de8-b1eb-cf4d42c26901/image.png" alt=""></p>
</li>
<li><p>쿠폰 추가가 되었을 경우 결제 단계로 이동 버튼 클릭
<img src="https://velog.velcdn.com/images/sung_hee/post/d54979e3-58f0-4c0c-b507-4950850ff32d/image.png" alt=""></p>
</li>
<li><p>스크롤 내려서 주소 입력하기
<img src="https://velog.velcdn.com/images/sung_hee/post/e471e4ed-dbf4-4728-819a-300a08d390a7/image.png" alt=""></p>
</li>
<li><p>결제 수단을 고른 후 &quot;Pay 280,708.00 KRW&quot; 버튼 클릭 (저는 credit card로 결제하겠습니다)
<img src="https://velog.velcdn.com/images/sung_hee/post/a637c366-54bb-48a4-baf9-342905530706/image.png" alt=""></p>
</li>
<li><p>결제 카드사 선택 후 결제하기 
※ 삼성 카드 결제시 1천원 추가 할인
<img src="https://velog.velcdn.com/images/sung_hee/post/60727502-18dd-4a2b-81ab-cd174f2f9512/image.png" alt=""></p>
</li>
<li><p>이용 약관 체크 후 &quot;제출하다&quot; 버튼 클릭
<img src="https://velog.velcdn.com/images/sung_hee/post/f48edfa8-f7db-4a25-9ca6-7a4f0937874b/image.png" alt=""></p>
</li>
<li><p>구매 완료
<img src="https://velog.velcdn.com/images/sung_hee/post/6c2c0408-44f0-455b-b33b-9f5974f2ec28/image.png" alt=""></p>
</li>
</ol>
<p><strong>※ 구매해도 응시권 확인까지 2~3일 정도 걸리니 미리 구매하기!!</strong></p>
<ol start="8">
<li>부킹 메일 확인
<img src="https://velog.velcdn.com/images/sung_hee/post/264c1b84-6901-4b82-8f8b-ed7ae65733b3/image.png" alt=""></li>
</ol>
<h1 id="응시권-확인">응시권 확인</h1>
<ol>
<li>SAP training 사이트에서 마이페이지 버튼 클릭</li>
</ol>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/2419716c-58db-4d35-ad07-241aa912a7f5/image.png" alt=""></p>
<ol start="2">
<li><p>구매한 구독에 액세스
<img src="https://velog.velcdn.com/images/sung_hee/post/e0919aa2-4d01-491c-bfb6-062f38e9c978/image.png" alt=""></p>
</li>
<li><p>저는 방금 구매했더니 아직 액세스가 안되네요,, 확인 메일오면 다시 확인해봐야겠어요~
미리미리 구매해둡시다!
<img src="https://velog.velcdn.com/images/sung_hee/post/27ebf85d-9e97-467b-b0ae-a1f174ca5c79/image.png" alt=""></p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[유저의 이벤트가 발생하지 않아도 강제로 PAI를 타게 하는 법]]></title>
            <link>https://velog.io/@sung_hee/%EC%9C%A0%EC%A0%80%EC%9D%98-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%98%EC%A7%80-%EC%95%8A%EC%95%84%EB%8F%84-%EA%B0%95%EC%A0%9C%EB%A1%9C-PAI%EB%A5%BC-%ED%83%80%EA%B2%8C-%ED%95%98%EB%8A%94-%EB%B2%95</link>
            <guid>https://velog.io/@sung_hee/%EC%9C%A0%EC%A0%80%EC%9D%98-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%98%EC%A7%80-%EC%95%8A%EC%95%84%EB%8F%84-%EA%B0%95%EC%A0%9C%EB%A1%9C-PAI%EB%A5%BC-%ED%83%80%EA%B2%8C-%ED%95%98%EB%8A%94-%EB%B2%95</guid>
            <pubDate>Thu, 08 Aug 2024 10:00:20 GMT</pubDate>
            <description><![CDATA[<h1 id="문제">문제</h1>
<p>전표 생성 프로그램의 기능 중 실시간 차/대변의 합계를 검사해주는 기능 구현 중
분명 차/대변 합계를 계산하여 스크린 I/O 필드에 변경된 값을 할당했는데, 화면에는 변경된 값으로 반영이 되지 않는 문제가 있었다.
디버깅을 해보니 값은 잘 할당되어 있었기 때문에, 화면 반영 문제라고 판단하였다.</p>
<h1 id="해결">해결</h1>
<p>I/O 필드에 값을 할당한 후 PAI를 강제로 타게 한 후 PBO를 통해 화면을 다시 그려주도록 만들어서 해결하였다.
    ※ PAI 이벤트가 발생하면 이후 반드시 PBO를 타게 됨.</p>
<p>해당 함수</p>
<pre><code>CL_GUI_CFW=&gt;SET_NEW_OK_CODE( &#39;펑션 코드&#39; )</code></pre><p><img src="https://velog.velcdn.com/images/sung_hee/post/5fe9a0f6-a9eb-46de-978a-02b89d207f70/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[CO / CCA Master Data] 표준계층 구조, Cost Center, Profit Center, Sender, Receiver]]></title>
            <link>https://velog.io/@sung_hee/CO-Master-Data-%ED%91%9C%EC%A4%80%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0-Cost-Center-Profit-Center</link>
            <guid>https://velog.io/@sung_hee/CO-Master-Data-%ED%91%9C%EC%A4%80%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0-Cost-Center-Profit-Center</guid>
            <pubDate>Thu, 08 Aug 2024 09:54:12 GMT</pubDate>
            <description><![CDATA[<h1 id="표준계층-구조standard-hierarchy">표준계층 구조(Standard hierarchy)</h1>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/9a3fcf89-f6a8-42e8-bf88-11a95423a61d/image.png" alt=""></p>
<ul>
<li>여러 개의 코스트 센터를 그룹으로 묶어서 관리할 수 있는데, 이때 가장 최상위의 코스트센터 그룹을 표준계층 구조라고 함.
  -&gt; 위의 그림에서는 0001이 표준계층 구조가 됨.</li>
<li>코스트 센터 생성 전, 먼저 생성해야 함.</li>
<li>관리회계 영역에 지정되는 조직 구조</li>
</ul>
<h1 id="코스트-센터cost-center">코스트 센터(Cost Center)</h1>
<h2 id="정의">정의</h2>
<ul>
<li>회계의 <strong>비용</strong>을 집계하는 가장 기본적인 CO Object 중 하나</li>
<li>회계에 개념에서는 수익이나 이익을 창출하지 않고, 기업의 수익성에 간접적으로 기여하는 의미를 가지고 있지만 SAP의 코스트센터는 비용뿐만 아니라 수익도 입력 가능</li>
<li>비용의 계획 수립, 집계, 배부를 하는 최소 단위, 한마디로 <strong>비용이 발생하는 단위</strong></li>
<li>일반적으로 <strong>부서</strong>를 칭하는 경우가 많음.</li>
<li>코스트센터에 비용이 반영되기 위해서는 FI 전표 또는 물류 처리 시, 반드시 해당 비용을 지불하는 코스트 센터가 입력되어야 함.
=&gt; 한마디로 <strong>누가 돈 썼냐</strong>
  ※ 원가요소는 어디서 돈 썼냐</li>
</ul>
<p>#부서 단위의 #비용의 발생처 =&gt; 코스트 센터</p>
<h2 id="코스트-센터-관련-티코드">코스트 센터 관련 티코드</h2>
<ul>
<li>생성 : KS01</li>
<li>수정 : KS02</li>
<li>조회 : KS03</li>
</ul>
<h2 id="그룹핑">그룹핑</h2>
<ul>
<li><strong>같은 배부(Assessment) 규칙</strong>을 따르는 코스트 센터는 그룹으로 묶어 동일한 배부 사이클에서 배부할 수 있음
  <img src="https://velog.velcdn.com/images/sung_hee/post/a6966d81-768f-4eb3-8cf3-5ba715035cd6/image.png" alt=""></li>
</ul>
<h2 id="코스트-센터와-표준계층-구조">코스트 센터와 표준계층 구조</h2>
<ul>
<li>코스트 센터 생성시, 표준계층 구조를 필수로 지정해야함.
<img src="https://velog.velcdn.com/images/sung_hee/post/ac6a7018-54d6-4550-9367-e49e1cdcdbeb/image.png" alt=""></li>
</ul>
<h2 id="센더sender와-리시버receiver">센더(Sender)와 리시버(Receiver)</h2>
<h3 id="sender">Sender</h3>
<p>: 비용을 배부할 센더, 배부할 대상 금액에 대한 정보를 가지고 있음.</p>
<h3 id="receiver">Receiver</h3>
<p>: 비용을 배부 받을 리시버</p>
<h1 id="손익-센터profit-center">손익 센터(Profit Center)</h1>
<ul>
<li>관리 회계의 <strong>수익(매출-(원가+비용))</strong> 을 집계하는 내부 책임단위(internal Responsibility)</li>
<li>내부 통제를 목적</li>
<li>비용과 수익 모두에 대해 분권화된 책임을 짐, 조직 내 개별적이고 독립적인 영역의 손익을 평가</li>
<li>회사 코드/손익센터 =&gt; 1:1 또는 1:N 관계</li>
<li>코스트 센터, CO Object(WBS 등), 자재 코드, 구매 오더, 판매 오더 등과 연결됨.</li>
</ul>
<h1 id="정리">정리</h1>
<blockquote>
<p>코스트 센터 -&gt; 누가 돈 썼음? (비용이 발생하는 단위)
프로핏 센터 -&gt; 누가 돈 쓰는거 대비 돈 잘 벌어옴?
코스트 센터와 프로핏 센터를 통해 수익과 비용이 취합되고, 이를 이용하여 손익계산서를 만듬.</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[CO Master Data] 원가요소(Cost Element), CO Object]]></title>
            <link>https://velog.io/@sung_hee/CO-Master-Data-%EC%9B%90%EA%B0%80%EC%9A%94%EC%86%8CCost-Element-CO-Object</link>
            <guid>https://velog.io/@sung_hee/CO-Master-Data-%EC%9B%90%EA%B0%80%EC%9A%94%EC%86%8CCost-Element-CO-Object</guid>
            <pubDate>Thu, 08 Aug 2024 09:24:40 GMT</pubDate>
            <description><![CDATA[<h1 id="원가요소란">원가요소란?</h1>
<ul>
<li>G/L 계정 중 CO에서 사용할 목적으로 정의한 항목, 반드시 CO Object에 귀속이 필요한 계정</li>
<li>일반적으로 수익과 비용과 관련</li>
<li>1차 원가요소와 2차 원가요소로 구분됨
=&gt; 한마디로 <strong>어디에 돈 썼냐</strong></li>
</ul>
<h1 id="1차-원가요소">1차 원가요소</h1>
<ul>
<li>일반 비용 계정</li>
<li>CO-PA에 집계할 수익 계정/매출 차감 계정 등에 사용</li>
</ul>
<h1 id="2차-원가요소">2차 원가요소</h1>
<ul>
<li>간접비, 내부 액티비티, 내부 정산 등</li>
<li>2차 원가요소는 재무제표에서는 제외됨.</li>
</ul>
<h1 id="co-object">CO Object</h1>
<ul>
<li>수익과 비용을 집계할 수 있는 단위</li>
<li><strong>대표적인 CO Object</strong></li>
</ul>
<ol>
<li>코스트 센터(cost center)<pre><code> : 비용을 집계하는 단위(팀, 부서,,)</code></pre></li>
<li>세그먼트(segment)<pre><code> : 수익을 집계하는 단위 (점포,,)</code></pre></li>
<li>내부 오더(internal order)<pre><code> : 행사 비용과 같은 이벤트성(특별성) 경비 집계
   오더 유형(Order Type)에 따라 구분됨, 타입에 따라 업무 프로세스가 달라짐</code></pre></li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[CO 모듈이란, 관리회계 영역(Controlling Area)]]></title>
            <link>https://velog.io/@sung_hee/CO-%EB%AA%A8%EB%93%88-CO-%EB%AA%A8%EB%93%88%EC%9D%B4%EB%9E%80-%EA%B4%80%EB%A6%AC%ED%9A%8C%EA%B3%84-%EC%98%81%EC%97%ADControlling-Area</link>
            <guid>https://velog.io/@sung_hee/CO-%EB%AA%A8%EB%93%88-CO-%EB%AA%A8%EB%93%88%EC%9D%B4%EB%9E%80-%EA%B4%80%EB%A6%AC%ED%9A%8C%EA%B3%84-%EC%98%81%EC%97%ADControlling-Area</guid>
            <pubDate>Thu, 08 Aug 2024 08:15:11 GMT</pubDate>
            <description><![CDATA[<h1 id="cocontrolling-모듈이란">CO(Controlling) 모듈이란?</h1>
<p>-&gt; 관리회계(원가요소관리, 간접비관리, 원가관리, 손익관리 등) 업무를 수행하는데 사용되는 모듈
-&gt; 경영 성과와 재무 상태를 파악하여 전략 계획과 의사결정에 필요한 정보를 적시에 제공하기 위한 목적
    ※ 관리회계 : 내부 보고를 위한 회계 &lt;-&gt; 재무회계 : 외부 보고(재무제표 등)를 위한 회계
-&gt; <strong>기업의 경영 성과을 지표화 하는 것이 목표</strong></p>
<h2 id="co-모듈-구조표">CO 모듈 구조표</h2>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/09370c43-86fc-4671-9561-4e96a3055070/image.png" alt=""></p>
<h2 id="기능상-3가지-분류">기능상 3가지 분류</h2>
<ol>
<li>간접비 관리(Overhead Cost Management)
 : CO-OM</li>
<li>원가 계산(Product Cost Accounting)
 : CO-PC</li>
<li>수익성 분석(Profit Analysis)
 : CO-PA</li>
</ol>
<h1 id="관리회계-영역controlling-area">관리회계 영역(Controlling Area)</h1>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/278e43ef-6785-4a50-910c-6ea297ebc9d1/image.png" alt=""></p>
<ul>
<li>CO의 가장 중심이 되는 조직 구조( 원가 계산과 관리결산의 단위 )</li>
<li>회사 코드와 관리회계 영역은 1:1 또는 1:N의 관계를 가짐.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SAP 기본 개념] 회사 코드(Company Code), 플랜트(Plant)]]></title>
            <link>https://velog.io/@sung_hee/SAP-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%ED%9A%8C%EC%82%AC-%EC%BD%94%EB%93%9CCompany-Code-%ED%94%8C%EB%9E%9C%ED%8A%B8Plant</link>
            <guid>https://velog.io/@sung_hee/SAP-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%ED%9A%8C%EC%82%AC-%EC%BD%94%EB%93%9CCompany-Code-%ED%94%8C%EB%9E%9C%ED%8A%B8Plant</guid>
            <pubDate>Thu, 08 Aug 2024 08:02:10 GMT</pubDate>
            <description><![CDATA[<h1 id="회사-코드company-code">회사 코드(Company Code)</h1>
<ul>
<li>조직 단위를 식별하기 위한 코드
  -&gt; 한국법인 1000, 미국법인 2000, 호주법인 3000</li>
<li>독립적인 재무회계(대차대조표, 손익계산서) 단위이자 외부 공시(FI)를 위한 제일 작은 단위이다.
  -&gt; 세무 회계, ~회계 전부 회사 코드를 기준으로 이루어짐.</li>
<li>주로 FI, CO 모듈에서 사용</li>
<li>회사가 여러개로 나누어져 있는 경우(모기업 아래 계열사 등) 관리회계(Controlling area) 밑에 회사코드가 들어감.
  -&gt; 관리회계 영역, 회사코드 =&gt; <strong>1:N 또는 1:1</strong> 관계를 맺음</li>
<li>회사코드와 플랜트는 1:N의 구성이 일반적이다.</li>
</ul>
<h1 id="플랜트plant">플랜트(Plant)</h1>
<ul>
<li>회사 코드 내의 운영 시설(생산 시설, 창고, 유통 센터, 세관 항구, 사무실 등)을 말함</li>
<li>물류 내의 조직 단위로서, 생상, 조달, 유지관리, 자재 계회의 관점에서 기업을 세분화 함.
  -&gt; 물류는 플랜트 기준으로 자재가 조달된다.</li>
<li>MM 모듈 뿐만 아니라 여러 모듈에게 영향을 미침.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[DYNPRO_SYNTAX_ERROR]]></title>
            <link>https://velog.io/@sung_hee/DYNPROSYNTAXERROR</link>
            <guid>https://velog.io/@sung_hee/DYNPROSYNTAXERROR</guid>
            <pubDate>Thu, 01 Aug 2024 12:12:24 GMT</pubDate>
            <description><![CDATA[<h1 id="문제">문제</h1>
<p>싱크 교육을 받을 당시, 친구들의 코드를 보다보면 꽤나 자주보게 되는 덤프</p>
<blockquote>
<p>DYNPRO_SYNTAX_ERROR</p>
</blockquote>
<h1 id="해결">해결</h1>
<p>거의 스크린 문제기 때문에, 문제가 되는 스크린으로 가서 (덤프 읽어보면 몇번 스크린이 문제인지 나온다)
<img src="https://velog.velcdn.com/images/sung_hee/post/6e4be30a-05d1-4111-a377-a9b3ebdb993f/image.png" alt=""></p>
<p>위의 이미지에 빨간색으로 표시한 버튼을 눌러, 스크린에 오류가 있는 부분을 확인한 후 수정하면 문제없이 돌아간다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[리포트 프로그램(TYPE 1) 실행 이벤트의 중요성,  리포트 프로그램 구조 및 프로세스]]></title>
            <link>https://velog.io/@sung_hee/%EB%A6%AC%ED%8F%AC%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8TYPE-1-%EC%8B%A4%ED%96%89-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EC%9D%98-%EC%A4%91%EC%9A%94%EC%84%B1</link>
            <guid>https://velog.io/@sung_hee/%EB%A6%AC%ED%8F%AC%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8TYPE-1-%EC%8B%A4%ED%96%89-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EC%9D%98-%EC%A4%91%EC%9A%94%EC%84%B1</guid>
            <pubDate>Thu, 01 Aug 2024 12:01:11 GMT</pubDate>
            <description><![CDATA[<h1 id="문제">문제</h1>
<p>얼마 전 친구가 에러 좀 봐달라고 부탁해서 보게 된 새로운 에러!</p>
<p>&#39;FORM이 ENDFORM으로 닫히지 않았다는 오류메시지&#39;</p>
<p>f01으로 가봐도 모든 FORM이 ENDFORM.으로 잘 감싸져 있었다.
뭐가 문제일까..?</p>
<h1 id="해결">해결</h1>
<p>알고보니 친구가 SCREEN 호출을 START-OF-SELECTION에서 하지 않고, 메인 프로그램에서 냅다 호출해서 생긴 문제였다.</p>
<p>처음에는 f01에서의 문젠 줄 알고 f01만 보다가 에러 라인(CALL SCREEN을 가르키고 있었음) 때문에 main program가서 코드를 보는데,, 뭔가,, 이상하다,,?</p>
<pre><code>(코드 생략..)

START-OF-SELECTION.
    CALL SCREEN &#39;0100&#39;.

(코드 생략..)</code></pre><p>스크린 호출부를 &#39;START-OF-SELECTION&#39; 이벤트 안에 넣어주는 것으로 문제 해결 완.</p>
<hr>
<p>24.9.4 추가
리포트 프로그램 구조가 잘 정리되어 있는 블로그 글이 있어 추가
<a href="https://pp-jjong.tistory.com/26">링크텍스트</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[채번(number range)이 포함되어 있는 로직 실행시 무한 로딩 현상]]></title>
            <link>https://velog.io/@sung_hee/%EC%B1%84%EB%B2%88number-range%EC%9D%B4-%ED%8F%AC%ED%95%A8%EB%90%98%EC%96%B4-%EC%9E%88%EB%8A%94-%EB%A1%9C%EC%A7%81-%EC%8B%A4%ED%96%89%EC%8B%9C-%EB%AC%B4%ED%95%9C-%EB%A1%9C%EB%94%A9-%ED%98%84%EC%83%81</link>
            <guid>https://velog.io/@sung_hee/%EC%B1%84%EB%B2%88number-range%EC%9D%B4-%ED%8F%AC%ED%95%A8%EB%90%98%EC%96%B4-%EC%9E%88%EB%8A%94-%EB%A1%9C%EC%A7%81-%EC%8B%A4%ED%96%89%EC%8B%9C-%EB%AC%B4%ED%95%9C-%EB%A1%9C%EB%94%A9-%ED%98%84%EC%83%81</guid>
            <pubDate>Wed, 24 Jul 2024 08:08:34 GMT</pubDate>
            <description><![CDATA[<h1 id="문제">문제</h1>
<p>분명 문제없이 돌아가던 전표 생성 배치 프로그램이 어느날 실행만 시키면 무한 로딩이 걸리는 현상이 발견되었다.
디버깅을 떠보니 전표 번호를 생성하는 로직에 들어갈 때 무한 로딩이 시작됨을 확인하였다.
매일 배치 프로그램을 돌려 전표를 자동으로 생성하고 있었는데, 전표가 생성됨에 따라 number range의 최대 범위를 넘어서는 바람에 발생하는 문제였다.</p>
<h1 id="해결">해결</h1>
<p>우선은 무한 로딩 현상부터 해결을 해야한다.</p>
<ol>
<li><p>T-CODE : SM56으로 가서
<img src="https://velog.velcdn.com/images/sung_hee/post/db88af82-8e3f-4f6e-ba7d-19b84f6f909e/image.png" alt="">
문제가 되는 number range는 빨간색으로 표시가 된다.
현재 무한 로딩 현상이 발생하는 프로그램에서 쓰는 number range가 빨간색으로 표시가 되어있다면 2번으로</p>
</li>
<li><p>T-CODE : SNRO으로 가서 해당 넘버 레인지 object name 입력해서 체인지 버튼 클릭
<img src="https://velog.velcdn.com/images/sung_hee/post/5a107918-7a77-469f-9fb7-2e3ed09f3399/image.png" alt=""></p>
</li>
<li><p>buffering을 No buffering으로 변경 후 저장하면 괜찮아 짐.
<img src="https://velog.velcdn.com/images/sung_hee/post/2c3f6504-c89f-45ec-88f7-392b277f35c5/image.png" alt=""></p>
</li>
</ol>
<p>3번까지 완료하면 무한 로딩 현상은 해결된다!</p>
<p>✚
이후 넘버 레인지 범위를 넘어가지 않도록 티코드 SNRO를 통해 직접적으로 NR Status를 초기화 시켜줬지만, 너무 비효율적이라고 생각이 들었다.
구글링을 통해 number range를 초기화하는 함수 발견!</p>
<blockquote>
<p>NUMBER_RANGE_INTERVAL_INIT</p>
</blockquote>
<p>해당 펑션을 이용하여, 배치 프로그램이 전표를 생성할 테이블을 확인하기 전에 전표 헤더 번호와 전표 아이템 번호의 number range를 초기화 시켜주었다.</p>
<p>Main 프로그램의 코드는 아래와 같다.</p>
<pre><code>(생략...)
START-OF-SELECTION.
  IF sy-batch IS NOT INITIAL.
    PERFORM : number_range_init, &quot;여기에서 number range를 초기화 시켰다.
              check_po_table,
              check_so_table,
              check_rb_table,
              save_data.</code></pre><p>해당 폼(number_range_init)의 코드는 아래와 같다.</p>
<pre><code>*&amp;---------------------------------------------------------------------*
*&amp; Form number_range_init
*&amp;---------------------------------------------------------------------*
*&amp; 헤더 : 전표번호, 아이템 : 아이템 변호 생성을 위한 Number range를 초기화 하는 폼.
*&amp;---------------------------------------------------------------------*
FORM number_range_init.

  &quot;헤더 채번 초기화
  CALL FUNCTION &#39;NUMBER_RANGE_INTERVAL_INIT&#39;
    EXPORTING
      object            = &#39;ZC103FI01&#39;
    EXCEPTIONS
      no_interval_found = 1
      object_not_found  = 2.

  &quot;아이템 채번 초기화
  CALL FUNCTION &#39;NUMBER_RANGE_INTERVAL_INIT&#39;
    EXPORTING
      object            = &#39;ZC103FI02&#39;
    EXCEPTIONS
      no_interval_found = 1
      object_not_found  = 2.

ENDFORM.</code></pre><p>number range를 초기화 시켜줬더니 다시 문제 없이 잘 돌아가는 배치 프로그램 ^___^</p>
<p><img src="https://velog.velcdn.com/images/sung_hee/post/7c9dd5ff-395a-4414-bc56-13c0ad25d7cf/image.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>