다음을 통해 공유


클라우드 흐름을 개발하고 사용하는 방법

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. 앱은 Run 함수를 사용하여 포함된 CreateRequisition 흐름을 호출하고 이전에 생성된 JSON 문자열을 전달합니다.

            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 연결 문자열 내의 Language 속성의 일부로 EN ISO 639-1 코드 2개를 전달합니다.

팁 (조언)

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

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

오류 처리

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

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

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

표시된 오류를 보려면 모니터 오류 문서에 설명된 대로 SAP 관리자 앱으로 이동합니다.

다음 단계

모델 기반 앱 및 Dataverse 확장

참고하십시오

SAP 조달 템플릿 시작