본문 바로가기

ABAP15

[ABAP] 재고는 있는데 재고 부족? BAPI 이슈 해결 주말은 주식장이 안 열리기에 주중에 있던 것을 정리해봤습니다.그중에서 미스터리 소설 같았던 기술적 난제를 해결한 경험을 공유하려 합니다.시스템은 분명 "재고가 있다"고 하는데, 정작 BAPI는 "재고가 없다"고 외치는, 개발자라면 뒷목 잡게 만드는 그런 상황이었죠. 제가 겪었던 문제의 본질, LUW(Logical Unit of Work) 처리방안을 공유하겠습니다.사건의 발단: 복합적인 STO 입고 취소 프로세스먼저 저희 업무 시나리오를 이해하셔야 합니다. 플랜트 간 재고를 이전하는 STO(Stock Transport Order) 프로세스와 생산 오더가 얽혀있는 복잡한 구조입니다.STO 입고(MM): 입고 플랜트에서 해당 자재를 입고합니다. (이동유행 101)생산(PP): 입고된 자재를 사용하여 생산 .. 2025. 6. 29.
[ABAP] 엑셀로 구매정보레코드(Info Record) 대량 생성/변경 제가 주로 운영/개발하는 모듈은 MM 입니다. 공급업체와의 단가 계약이 갱신되거나 신규 자재가 대량으로 입고될 때마다 수많은 정보레코드를 수작업으로 수정해야 하는 불편함이 있습니다. 이런 단순 반복 작업에 드는 시간을 줄이고, 더 가치 있는 일에 집중하고 싶다는 생각, 다들 한 번쯤 해보셨을 겁니다.그래서 오늘은, 이러한 반복 작업을 자동화하고 더 나아가 시스템 간 데이터 마이그레이션까지 대응하기 위해 정보레코드 일괄 처리 프로그램을 공유해볼까 합니다.지난번에 PO생성 프로그램에 이어 이번에는 정보레코드 생성 프로그램입니다.2025.06.28 - [ABAP] - [ABAP] BAPI_PO_CREATE1(엑셀 업로드) [ABAP] BAPI_PO_CREATE1(엑셀 업로드)이번엔 엑셀업로드로 PO 만드는 .. 2025. 6. 29.
[ABAP] 구시스템 참조하여 데이터 가져오기 이번은 PO를 마이그레이션 하는데 엑셀을 만들어야 하는 불편함을 없애고자 직접 구시스템에서 가져와서 생성하는 프로그램입니다. 가져오기구시스템의 PO 테이블을 가져오는 기능입니다.가져온 후 미리 생성된 테이블에 저장합니다. 생성하기저장된 테이블을 바탕으로 ALV에 보여준 후 선택하여 생성하게 됩니다. 생성하는 로직은 엑셀을 참조하는 것과 별반 다른것이 없습니다.더보기2025.06.28 - [SAP] - [ABAP] BAPI_PO_CREATE1(엑셀 업로드) 그래서 타SAP에서 가져오는 것을 코딩하겠습니다.먼저 어떤정보를 가져올지랑 초기값 세팅하는 부분입니다.FORM get_data_from_ecc. "---------------------------------------------------------.. 2025. 6. 28.
[ABAP] BAPI_PO_CREATE1(엑셀 업로드) 이번엔 엑셀업로드로 PO 만드는 샘플입니다. PO만다는 소스는 너무나도 많죠~각 프로젝트마다 조금씩 요구사항이 추가로 있어서 약간의 기능이 추가된다고 보면 됩니다.주석은 최대한 달아 놓았으니 참조하시면 됩니다. 실행화면입니다. 엑셀업로드 플랫릿입니다.이번엔 필드가 좀 많죠~;; 자세한건 소스를 등록할테니..참조하세요 이제 코딩 들어갑니다.*&---------------------------------------------------------------------**& Report ZMMC2000*&---------------------------------------------------------------------*REPORT zmmc2000g MESSAGE-ID zmm1. " 프로그램 이름(zm.. 2025. 6. 28.
[ABAP] BAPI_PO_CREATE1을 활용한 마이그레이션용 구매오더(PO) 생성 가이드 프로젝트시 MM모듈을 담당할때 제일 많이 접하게는 BAPI_PO_CREATE1에 대하여 남겨볼까 합니다. 기본 구조는 아래와 같습니다. 그런데 이런걸 인터넷검색하면 너무~~많습니다.이건걸 원하지는 않겠죠~..ㅎㅎDATA: ls_header TYPE bapimepoheader, lt_item TYPE TABLE OF bapimepoitem, lt_itemx TYPE TABLE OF bapimepoitemx, lt_return TYPE TABLE OF bapiret2.ls_header-doc_type = 'NB'.ls_header-vendor = '10000001'.ls_header-purch_org = '1000'.ls_header-pur.. 2025. 6. 24.
[step-3] executable program templete - PBO,PAI,CLS,F01 처음에는 잘 정리해서 기록해 놔야지로 시작했는데 의미가 없는 거라 생각이 듭니다.ㅠㅠ많은 분들이 이미 초보부터 중급까지 잘 정리된 곳이 많네요~그래도 시작은 했으니 종료는 짓겠습니다. PBO, PAI은 ABAP을 하시면 대략적으로 다 아실거라 생각합니다.간단한 설명과 프로그램 흐름 도식화를 참고하시면 됩니다. 1. PBO (Process Before Output)🔹 정의화면이 출력되기 전에 실행되는 로직입니다.즉, SAP가 화면을 그리기 전에 PBO 모듈에 정의된 로직을 먼저 실행합니다.🔹 주요 목적초기화 (변수 세팅)화면 필드 값 설정 (screen-name, screen-input, screen-invisible 등)ALV/Grid 생성컨트롤 설정타이틀바, 메뉴 설정 (SET PF-STATUS,.. 2025. 6. 24.