다음을 통해 공유


Dataverse 로우코드 플러그 인(프리뷰)의 예시

[이 항목은 시험판 설명서이므로 변경될 수 있습니다.]

이러한 예시 플러그 인의 목표는 플러그 인을 앱에 통합하여 시작할 수 있도록 돕는 것입니다. 작성 환경에는 Dataverse 내부 또는 외부에서 작업을 트리거할 수 있는 Power Fx 식으로 지원되는 Microsoft Dataverse 사용자 지정 API 작성이 포함된다는 것을 이해하게 될 것입니다.

중요

  • 이는 프리뷰 기능입니다.
  • 프리뷰 기능은 생산용으로 만들어진 것이 아니므로 기능이 제한될 수 있습니다. 이런 기능은 공식 릴리스 전에 사용할 수 있으므로 고객이 조기에 액세스하고 피드백을 제공할 수 있습니다.

전제 조건

데이터 이벤트에 대한 예시 플러그 인 중 하나를 사용하려면 Dataverse 가속기 앱이 환경에 설치되어 있어야 합니다. 추가 정보: 로우코드 플러그 인 생성을 위한 전제 조건

참고

이메일 템플릿은 특정 테이블에서만 사용할 수 있습니다. 추가 정보: 이메일용 템플릿 만들기

음수가 아닌 값을 반환

이 예에서는 Abs() 함수를 사용하여 인수의 음수가 아닌 값을 반환합니다. 숫자가 음수이면 Abs 함수는 해당 양수를 반환합니다.

  1. Dataverse Accelerator 앱을 실행하고 명령 모음에서 새 작업 > 인스턴트 플러그 인을 선택합니다.

  2. 수식 이름 및 설명과 같은 표시 이름을 제공합니다.

  3. Out 매개 변수를 만들어 문자열과 같이 의미 있는 예상 동작의 유효성을 검사합니다. 필요에 따라 입력 매개 변수를 사용하여 테스트를 더 쉽게 수행할 수 있으며, 이는 수식에 적합합니다.

  4. 수식 편집기에서 Out 매개 변수를 중괄호로 묶습니다.

    {Out: "" }
    
  5. 수식을 테스트하는 식을 입력합니다.

    • Intellisense가 수식을 허용하는지 확인합니다(텍스트가 연한 파란색으로 변함).
    • 예를 들어 결과의 유효성을 검사하는 데 도움이 되는 출력을 제공하는 식을 구현합니다.
    {Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 )  }
    
  6. 다음을 선택한 후 저장을 선택합니다.

  7. 테스트를 선택하여 수식을 테스트합니다. 출력 매개 변수를 사용하여 결과를 검증하십시오.

입력 유효성 검사 및 사용자 지정 오류

중복 검색

사용자 지정 오류 메시지를 발생시키는 중복 오류 감지와 같은 서버 측 입력 유효성 검사를 구현합니다.

  1. Dataverse Accelerator 앱을 실행하고 명령 모음에서 새 작업 > 자동화된 플러그 인을 선택합니다.
  2. 이름 상자에 중복 확인을 입력합니다.
  3. 테이블연락처를 선택합니다.
  4. 행이 다음과 같을 때 이 플러그 인 실행에서 생성됨을 선택합니다.
  5. 수식 상자에 다음 수식을 입력합니다.
 If( !IsBlank(LookUp([@Contacts],'Last Name'=ThisRecord.'Last Name' && 'First Name'=ThisRecord.'First Name')),
    Error("You have existing contacts with the same first name and last name")
)
  1. 저장을 선택합니다.

플러그 인 테스트

  1. 플러그 인을 테스트하려면 테이블 지정 단계에 따라 연락처 테이블을 사용하여 캔버스 앱을 만듭니다
  2. 연락처 행을 만듭니다.
  3. 이전 단계에서와 동일한 이름으로 다른 연락처를 만듭니다.
  4. 중복 레코드가 발견되었음을 알리는 메시지가 표시됩니다. 오류 메시지 프롬프트에서 무시하고 저장을 선택합니다.

이름과 성이 같은 연락처가 두 개 있습니다라는 사용자 지정 오류 메시지가 표시됩니다.

데이터 유효성 검사

ErrorKind 열거를 사용하여 특정 유형의 오류를 표시합니다.

  1. 새 자동화 플러그 인을 생성합니다.

  2. 다음 값을 제공합니다.

    • 이름: 입력 유효성 검사
    • 설명: 유효한 날짜를 확인하고 잘못된 경우 오류를 발생시킵니다
    • 테이블: 약속
    • 행이 다음과 같은 경우 이 플러그인 규칙을 실행: 업데이트됨
  3. 아래 수식을 입력합니다.

    If(ThisRecord.'Due Date' < Now(), 
     Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" })
    );
    
  4. 고급 옵션에서 실행 시기사전 작업으로 설정합니다. 잘못된 데이터를 방지하기 위해 데이터를 저장하기 전에 이 규칙을 실행하려고 합니다.

  5. 저장을 선택합니다.

사용자 지정 오류에 대해 자세히 알아보려면 Error() 함수로 이동하세요.

데이터 이벤트를 기반으로 이메일 보내기

필수 구성 요소:

이메일 템플릿 예시

다음은 SenMail 기반 데이터 이벤트에 대해 생성할 수 있는 이메일 템플릿 예입니다.

  • 템플릿 유형: 전역
  • 이름: 주문 감사합니다
  • 설명: 이 템플릿을 사용하여 주문한 고객에게 감사를 표합니다.
  • 제목: Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
  • 본문: 이 코드를 사용하세요.
   Hello {!Sales Order:First Name;},
   Order Type: {! Sales Order: Order Type;},
   Location Type: {! Sales Order: Location Type;},
   Address1: {! Sales Order: Address 1;},
   Address2: {! Sales Order: Address 2;},
   Preferred Service Start Date 1: {! Sales Order: Preferred Service Start Date;},
   Next Step- We take upto 48 hrs to schedule an in-person and will notify you as soon as we have a In-person Technician allocated at your site. For any questions, please contact us at 1-800-CON-SOLAR
   Yours Sincerely, 
   Contoso Sales 

자동화된 플러그 인 생성

  1. Dataverse Accelerator 앱을 실행한 다음 자동화된 플러그 인에서 +새 플러그 인을 선택합니다.
  2. 다음 정보를 입력합니다.
    • 이름: SendEmailUponCreate

    • 테이블: SalesOrder인 판매 주문의 논리적 테이블 이름을 선택합니다. 이 이벤트는 판매 주문 테이블을 기반으로 합니다.

    • 다음 행으로 이 플러그인을 실행: 생성됨

    • 수식: 아래 코드를 수식 상자에 붙여 넣습니다. SendEmailFromTemplate 함수에 대한 자세한 내용은 SendEmailFromTemplate 작업을 참조하세요.

      XSendEmailFromTemplate(
          LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template',
      ThisRecord,
      LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email]
      )
      
  3. 고급 > 사후 작업을 선택합니다.
  4. 저장을 선택합니다.

플러그 인이 성공적으로 저장되었습니다라는 확인 메시지가 나타납니다.

인스턴트 작업을 기반으로 앱 내 알림 보내기

앱 내 알림을 통해 제작자는 모델 기반 앱의 사용자를 위해 상황에 맞는 실행 가능한 알림을 구성할 수 있습니다.

앱 내 알림을 보내는 로우코드 플러그 인 만들기

  1. Dataverse 가속기 앱을 실행한 다음 인스턴트 플러그 인에서 +새 플러그 인을 선택합니다.
  2. 다음 정보를 입력하고 다음을 선택합니다.
    • 이름: NotifyTechnican1
    • 설명: 이 인스턴트 플러그 인은 앱 사용자에게 알립니다.
  3. 정의 페이지에서 다음 데이터 유형으로 입력 매개 변수를 생성합니다.
    • OrderID: 문자열
    • TechnicianEmail: 문자열
  4. 수식. 수식 상자에 다음 코드를 붙여 넣습니다. 이 기능에 대한 자세한 내용은 SendAppNotification 작업을 참조하세요.
     XSendAppNotification(
         "New service",
         LookUp(Users,'Primary Email'=TechnicianEmail),
         "You have a new solar panel installation scheduled on "& LookUp('Scheduling Results','OrderId'=OrderID).'ServiceDate'&" in "& LookUp('Service Orders','Order Number'=OrderID).City &". Contact the coordinator with any questions.",
     [
         XCreateSidePaneActionForEntity(
                 "View order",
             OrderID,
             "Sales Order",
             "cr8b8_serviceorder1",
             LookUp('Service Orders','Order Number'=OrderID).'Service Order'
             )
         ]
     )
    
  5. 다음을 선택합니다.
  6. 요약 페이지에서 저장을 선택합니다.

앱 내 알림 인스턴트 작업 호출

  1. 캔버스 앱을 선택한 다음 명령 모음에서 편집을 선택합니다(또는 새 앱 만들기).
  2. 왼쪽 탐색 창에서 화면을 선택하거나 새로 만듭니다.
  3. 삽입 메뉴에서 텍스트 기술자에게 알림을 사용하여 페이지에 버튼을 추가합니다.
  4. 버튼을 선택하고 fx 수식 입력줄에 다음을 입력합니다. 여기서 DataCardValue17은 주문 ID가 포함된 열이고 DataCardValue15는 기술자의 이메일 주소가 포함된 열입니다. 이 예에서는 Service Order App이라는 캔버스 앱이 사용됩니다.
    Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
       TechnicianEmail: DataCardValue15.Text 
    });
    
        Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    기술자에게 알림을 보내는 Power Fx 수식이 포함된 버튼 추가
  5. 변경 사항을 저장하고 게시합니다.

앱에서 기술자에게 알림 작업을 선택하면 서비스 주문에 할당된 기술자에게 앱 내 알림이 전송됩니다. 알림에 대한 작업은 측면 창에서 서비스 주문 세부 정보를 엽니다.

앱에서 수신하는 기술자에게 알림 전송

MSN Weather 커넥터를 사용한 샘플 인스턴트 플러그 인

이 플러그 인은 MSN Weather 커넥터를 사용하여 특정 위치의 현재 날씨를 반환합니다.

필수 구성 요소:

  1. 환경에서 아직 사용할 수 없는 경우 MSN Weather에 대한 연결 참조를 생성합니다. 오른쪽의 연결 참조 창에서 앱에 연결 참조 생성

  2. 코드 조각 복사: 연결 창에서 작업 코드 조각 복사

  3. IntelliSense를 사용하여 수식 편집을 완료하고 필요에 따라 커넥터 응답 속성을 사용합니다. 편집기에서 플러그 인 정의 완료

  4. 저장

  5. 플러그 인 테스트

응답이 가질 수 있는 다양한 속성에 액세스하려는 경우 With() 함수를 사용하여 한 작업의 전체 응답을 캡처합니다. 아래 예에는 입력 매개 변수 Location(문자열)과 출력 매개 변수 Out(문자열)이 있습니다.

With({ /* Capture current weather response from connector */
c: new_MsnWeather.CurrentWeather( Location, "Imperial" ).responses.weather.current
},{ /* Return concatenated weather details */
Out: "Current temp: " & c.temp & " degrees. Feels like " & c.feels & " degrees. Wind speed is " & c.windSpd & " mph."
})

모범 사례

자동화된 로우코드 플러그 인의 무한 루프 오류 처리

패치가 플러그 인과 동일한 테이블에서 발생하는 '업데이트' 이벤트 시 자동화된 플러그 인에 패치 설명을 작성하지 마세요. 이로 인해 무한 루프 및 플러그 인 실행 실패가 발생합니다.

문제가 있는 패턴: Patch() 수식을 사용하면 또 다른 업데이트가 트리거됩니다. "자동화된 플러그 인의 문제가 있는 수식"

권장 패턴: 이 문제를 방지하려면 Set() 수식을 대신 사용하세요. "자동화된 플러그 인의 권장 수식"

참조 항목

로우코드 플러그 인 Power Fx (프리뷰)