다음을 통해 공유


클라우드 흐름이 개발되고 사용되는 방식

Microsoft Power Platform은 일련의 전환을 조정하고 SAP ERP(엔터프라이즈 리소스 계획) 커넥터를 사용하는 사전 구성된 클라우드 흐름 포트폴리오를 통해 SAP와 통합합니다.

캔버스 앱에서 관리되는 각 SAP 개체는 일련의 검색, 생성, 읽기업데이트 흐름에 매핑됩니다. 예를 들어 공급업체 개체에 대해 다음과 같은 4가지 클라우드 흐름이 있습니다.

  • ReadVendor: 공급업체 번호와 키 관련 정보를 기준으로 단일 공급업체를 읽습니다.
  • ReadVendorList: 전달된 검색 기준에 따라 공급업체 목록을 검색합니다.
  • CreateVendor: 키 관련 정보를 사용하여 새로운 공급업체 객체를 생성합니다.
  • UpdateVendor: 기존 공급업체 개체와 키 관련 정보를 업데이트합니다.

클라우드 흐름 확장

로컬 비즈니스 요구 사항에 따라 클라우드 흐름을 확장할 수 있습니다. SAP 비즈니스 분석가의 도움을 받아 SAP ERP 커넥터에 새 필드를 추가 및 매핑하고 JSON 페이로드를 통해 앱을 앞뒤로 이동할 수 있습니다.

새 구매 요청을 생성하면 캔버스 앱, 클라우드 흐름 및 SAP 간의 일반적인 트랜잭션 시나리오가 제공됩니다.

  1. SAP 요청 관리 앱은 입력 컨트롤 및 저장된 항목 컬렉션의 데이터를 사용하여 빈 문자열을 null 값으로 대체하여 JSON을 준비합니다.

         Set(
            varRequisitionJSON,//Build the requisition JSON
            "{Header: " & JSON(//Build the requisition header JSON
                {
                    PurchaseRequisitionNumber: varRequisition,
                    Vendor: Trim(txtRequisitionDetailsVendor.Text),
                    PurchasingOrganization: cmbRequisitionDetailsPurchasingOrg.Selected.'Value Code',
                    PurchasingGroup: cmbRequisitionDetailsPurchasingGroup.Selected.'Value Code',
                    Currency: cmbRequisitionDetailsCurrency.Selected.'Value Code'
                },
                JSONFormat.IndentFour
            ) & ", items: " & JSON(//Build the requisition items JSON from cached collection
                colRequisitionItems,
                JSONFormat.IndentFour
            ) & "}"
        );    
        Set(
            varRequisitionJSON,
            Substitute(
                varRequisitionJSON,
                "null",
                """"""
            )
        );
    
  2. 앱은 실행 함수를 사용하고 이전에 구성된 JSON 문자열을 전달하여 포함된 CreateRequisition 흐름을 호출합니다.

            Set(
                varRequisitionReturn,
                CreateRequisition.Run(varRequisitionJSON)
            );
    
  3. CreateRequisition 흐름은 PowerApps(V2) 트리거를 통해 앱에서 JSON 문자열을 수신하고 JSON 구문 분석 작업을 사용하여 분해합니다.

  4. 변수 는 SAP ERP 커넥터 호출에 대한 매핑를 더 쉽게 허용하기 위해 JSON 정보를 사용하여 설정됩니다.

  5. SAP 세션은 SAP ERP 커넥터를 사용하여 생성되고 비즈니스 애플리케이션 프로그래밍 인터페이스(BAPI) 호출은 변수에 저장된 구문 분석된 요청 JSON 정보를 사용하여 이루어집니다.

  6. SAP 생성 오류가 평가되고 성공 또는 오류 HTTP 응답이 JSON 페이로드를 사용하여 캔버스 앱에 반환됩니다.

  7. 캔버스 앱은 응답 정보, 특히 상태 필드를 사용하여 최종 사용자에게 성공 또는 실패를 알리고 다음 처리 단계를 결정합니다.

    Switch(
        varRequisitionReturn.Status,
        "Error",//Raise error messages leaving variables in existing state for user to try again
        Notify(
            Concat(
                varRequisitionReturn.Messages,
                Message,
                " "
            ),
            NotificationType.Error
        ),
        "Success",//Raise success message
        Notify(
            Concat(
                varRequisitionReturn.Messages,
                Message,
                " "
            ),
            NotificationType.Success
    );

추가 정보:

다국어 배포 지원

기본적으로 SAP ERP 커넥터는 사용자의 브라우저 언어를 호출하여 SAP와 상호 작용하므로 해당 SAP 언어 팩을 설치해야 합니다.

그러나 다국어 및 전역 배포를 지원해야 하는 경우 사용자의 브라우저 언어를 재정의하고 기본적으로 특정 언어를 사용할 수 있습니다. 예를 들어 브라우저 언어가 스페인어로 설정된 스페인의 Power Apps 사용자는 영어(EN) 언어 팩만 설치된 SAP 시스템과 상호 작용해야 할 수 있습니다. 이 경우 오류를 방지하기 위해 SAP 연결 문자열 내에서 언어 속성의 일부로 두 글자 ENISO 639-1 코드를 전달합니다.

솔루션 관리 및 클라우드 흐름 확장 전략의 일부로 환경 변수 를 구성하여 다양한 SAP ERP 커넥터 작업에 전달할 언어 값을 중앙에 저장합니다.

추가 정보: SAP 시스템 속성 지침

오류 처리

각 흐름은 범위 작업의 Try/Catch 쌍으로 설계되었습니다. Try 작업 내부에는 기본 SAP 커넥터 호출이 있습니다. 각 호출 후 흐름은 SAP ERP 커넥터 단계에 치명적인 오류가 있는지 또는 고급 비즈니스 애플리케이션 프로그래밍(ABAP) 코어 덤프라고도 하는 것이 있는지 확인합니다. 그렇다면 흐름은 생성된 오류 메시지를 캡처합니다.

이 오류 메시지는 흐름 실행 중에 생성된 모든 오류와 함께 Catch 작업의 ErrorTable 단계에 표시됩니다.

모든 잘못된 흐름은 SAP 솔루션 템플릿 오류 테이블에 기록됩니다. 각 흐름 오류는 다른 정보와 함께 흐름에서 생성된 첫 번째 오류 메시지를 표시합니다.

오류 모니터링 기사에 설명된 대로 SAP 관리자 앱으로 이동하여 표시되는 오류를 확인합니다.

다음 단계

모델 기반 앱 확장 및 Dataverse

참조 항목

SAP 구매 템플릿 시작하기