Loading
알아보기
목차
필터 선택

          결과 없음
          결과 없음
          몇 가지 검색 팁

          키워드의 맞춤법을 확인하십시오.
          더 일반적인 검색 용어를 사용하십시오.
          필터 수를 줄여 검색 범위를 확장하십시오.

          전체 Salesforce 도움말 검색
          고급 트랜잭션 세부 사항 행 가격 책정을 사용하여 사용자 정의 필드 매핑

          고급 트랜잭션 세부 사항 행 가격 책정을 사용하여 사용자 정의 필드 매핑

          사용자는 고급 세부 사항 라인 가격 책정 기능을 사용하여 가격 책정 절차를 통해 세일즈 트랜잭션 항목 또는 세일즈 트랜잭션 항목 세부 사항에 대한 사용자 정의 필드를 업데이트할 수 있습니다. 이 기능을 사용하면 사용자가 더 이상 사용자 정의 트리거 또는 플로를 사용하여 해당 필드를 업데이트할 필요가 없습니다. 이 기능은 수정, 갱신, 취소 사용 사례에 유용합니다.

          필수 Edition

          지원 제품: Lightning Experience
          사용 가능 제품: 트랜잭션 관리가 활성화된 Revenue Cloud의 Enterprise, UnlimitedDeveloper Edition
          필요한 사용자 권한
          고급 세부 사항 행 가격 책정 설정 및 사용:

          Salesforce 관리자

          AND

          가격 책정 설계 시간 사용자 권한 집합

          시작하기 전에 다음 과업을 완료하십시오.

          • 고급 세부 사항 라인 가격 책정 기능을 활성화하려면 설정에서 매출 설정을 찾아서 선택한 다음, 고급 세부 사항 라인 가격 책정 설정을 활성화합니다.
          • 가격 책정 절차를 구성합니다.

          매출 가격 책정 절차 업데이트

          고급 세부 사항 라인 가격 책정을 구성하려면 매출 가격 책정 절차를 수정합니다.

          1. 앱 시작 관리자에서 가격 책정 절차를 찾아서 선택한 다음, 업데이트할 가격 책정 절차를 선택합니다.
          2. 가격 책정 절차의 가격 책정 설정 옆에 있는 두 번째 요소로 새 지도 행 항목 요소를 추가하여 가격 책정 절차를 수정합니다.
          3. 맵 행 항목에 컨텍스트 태그 매핑을 추가합니다.

            입력 변수

            출력 변수

            LineItem

            SalesTrxnItemDetailSource

            LineItemQuantity

            ItemDetailQuantity

            NetUnitPrice

            ItemDetailNetUnitPrice

            price_water_fall

            DetailPriceWaterfallIdentifier

            InputUnitPrice

            ItemDetailUnitPrice

            ItemBillingReference

            ItemDetailBillingReference

            ItemNetTotalPrice

            ItemDetailTotalPrice

            TotalLineAmount

            ItemDetailTotalLineAmount

            유효 시작

            ItemDetailEffectiveFrom__std

            효과

            ItemDetailEffectiveTo__std

            PricingTermCount

            ItemDetailPricingTermCount__std

            itemTransientEndDate

            ItemDetailTransientEndDate__std

            ItemPricingSource

            ItemDetailPricingSource__std

            DerivedPricingAttribute

            ItemDetailDerivedPricingAttribute__std

            ItemGroupSummarySubtotal

            ItemDetailGroupSummaryTotal__std

            ListPrice

            ItemDetailListPrice__std

            IsContracted

            ItemDetailIsContracted__std

            ItemContractPrice

            ItemDetailContractPrice__std

            STI_TenantName__c

            STID_TenantName__c

            컨텍스트 태그 매핑을 추가한 후 업데이트된 컨텍스트 정의와 함께 SalesTransaction과 SalesTransactionItemDetail 간의 기본 매핑이 표시됩니다.

          파생 가격 책정 검색 절차 업데이트

          파생 가격 책정을 사용하는 경우 매출 가격 책정 절차에 대한 변경 사항을 완료한 후 검색 절차를 추가로 변경합니다. 이러한 변경 사항은 유효한 기여 제품 및 파생 제품을 결정하는 데 필요합니다.

          1. 앱 시작 관리자에서 검색 절차를 찾아서 선택한 다음, 업데이트할 검색 절차를 선택합니다.
          2. 가격 파생 제품에 검색 절차에 검색 설정 및 행 항목 매핑의 두 가지 새로운 요소를 추가합니다.
            검색 설정에 다음 변수를 추가합니다.
            • 입력 변수: 행 항목
            • 출력 변수: LineItem
            지도 행 항목에 다음 변수를 추가합니다.
            • 입력 변수: SalesTransactionItem
            • 출력 변수: SalesTransactionItemDetail

            지도 행 항목에 다음의 추가 변수를 추가합니다.

            입력 변수

            출력 변수

            LineItem

            SalesTrxnItemDetailSource

            유효 시작

            ItemDetailEffectiveFrom__std

            효과

            ItemDetailEffectiveTo__std

            DerivedPricingAttribute

            ItemDetailDerivedPricingAttribute__std

          3. ARC(수정, 갱신, 취소) 사용 사례에 가격 책정 절차를 사용하여 사용자 정의 필드를 지원합니다.
            ARC API를 사용하고 사용자 정의 필드를 사용하려는 경우 사용자 정의 필드 설정을 사용할 수 있습니다.
            1. QuoteLineItem, QuoteLineItem Detail, OrderProduct, OrderProductDetails 개체에 사용자 정의 필드를 추가합니다.
            2. 컨텍스트 정의에서 SalesTransactionItem 및 SalesTransactionItemDetail 노드 모두에서 이러한 사용자 정의 필드에 대한 항목을 만듭니다.
            3. QuoteEntitiesMapping 및 OrderEntitiesMapping에서 필수 매핑을 만듭니다.
          4. 사용자 정의 필드에 대한 매출 가격 책정 절차를 수정합니다.
            1. 가격 책정 절차에서 SalesTransactionItem.CustomField와 SalesTransactionItemDetail.CustomField 간의 매핑을 추가하도록 MapLineItem 요소를 수정합니다.
            2. 가격 책정 절차 내에서 필요한 사용자 정의 요소를 만들어 SalesTransactionItem.CustomField에 값을 할당합니다.

              가격 책정 절차는 특정 행에 세부 사항 항목이 있는지 자동으로 감지하고 세부 사항 항목이 있는 경우 SalesTransactionItemDetail.CustomField에 작성합니다. 그렇지 않으면 SalesTransactionItem.CustomField에 작성됩니다.

              새 세일즈 트랜잭션 동안 SalesTransactionItem의 CustomField가 채워집니다. 세부 사항 행이 있는 ARC 시나리오의 경우 세부 사항 행은 SalesTransactionItemDetail의 CustomField에 작성됩니다. ARC에 대한 세부 사항 행이 생성되지 않은 경우 세부 사항 행은 SalesTransactionItem의 CustomField에 작성됩니다.

          5. QuoteLineItem 또는 OrderProducts에 자세한 줄로 사용자 정의 필드를 작성하려면 절차 계획 및 Apex 클래스를 포함하는 이 추가 설정을 완료합니다.
            1. 절차 계획을 활성화합니다. 설정에서 매출 설정을 찾아서 선택하고 가격 책정용 절차 계획 오케스트레이션 설정을 활성화합니다.
            2. 견적 및 주문에 대한 절차 계획을 생성합니다.
            3. 절차 계획에서 모든 단계에 MapLineItem 요소가 포함되어 있는지 확인합니다. 가격 책정 절차에 사용된 필드를 기반으로 매핑
            4. 필요한 경우 여러 사용자 정의 필드를 업데이트하도록 향상할 수 있는 ApexCustomFieldHandler 클래스 예를 사용합니다. 이 클래스는 SalesTransactionItem 및 SalesTransactionItemDetail 노드를 쿼리하고 세부 사항 항목에서 사용자 정의 필드 값을 추출한 다음, SalesTransactionItem에서 해당하는 사용자 정의 필드를 업데이트합니다.
          예
          global class ApexCustomFieldHandler implements RevSignaling.SignalingApexProcessor {
          
              public virtual class BaseException extends Exception {}
              public class OtherException extends BaseException {}
              
              public RevSignaling.TransactionResponse execute(RevSignaling.TransactionRequest request) {
                  
                  String contextId = request.ctxInstanceId;
                  Context.IndustriesContext industriesContext = new Context.IndustriesContext();
                  
          
                  // STEP 2 - Query SalesTransactionItem nodes
                  Map<String, Object> inputQueryItem = new Map<String, Object>{
                      'contextId' => contextId,
                      'tags' => new List<String>{ 'SalesTransactionItem', 'SalesTransactionItemDetail' }
                  };
                  Map<String, Object> itemQueryOutput = industriesContext.queryTags(inputQueryItem);
                  Map<String, Object> itemQueryResult = (Map<String, Object>) itemQueryOutput.get('queryResult');
                  List<Object> itemData = (List<Object>) itemQueryResult.get('SalesTransactionItem');
                  List<Object> itemDetailData = (List<Object>) itemQueryResult.get('SalesTransactionItemDetail');
          
          
                  Map<String, String> salesTransactionItemIdToCustomAggregatedValue = new Map<String, String>();
                  
                  // STEP 3 - Custom Field Value from SalesTransactionItemDetail
                  for(Object itemDetailObj : itemDetailData) {
                      Map<String, Object> itemDetailNode = (Map<String, Object>) itemDetailObj;
                      Map<String, Object> detailTagMap = (Map<String, Object>) itemDetailNode.get('tagValue');
                      
                      String lineItemId = (String)((Map<String, Object>) detailTagMap.get('SalesTrxnItemDetailParent')).get('tagValue');
                      String cfValue = (String)((Map<String, Object>) detailTagMap.get('STID_TenantName__c')).get('tagValue');
                      
                      System.debug('Custom Field Value for Detail Item' + cfValue);
                      if(cfValue != null) {
                          salesTransactionItemIdToCustomAggregatedValue.put(lineItemId, cfValue);
                      }
                  }
          
          
                  // STEP 4 - Build update list
                  List<Map<String, Object>> itemNodeUpdates = new List<Map<String, Object>>();
          
                  for (Object itemObj : itemData) {
                      Map<String, Object> itemNode = (Map<String, Object>) itemObj;
                      Map<String, Object> tagMap = (Map<String, Object>) itemNode.get('tagValue');
                      
                      String lineItemId = (String)((Map<String, Object>) tagMap.get('LineItem')).get('tagValue');
                      
                      List<Object> dataPath = (List<Object>) itemNode.get('dataPath');
          
                      dataPath.remove(0); // Remove contextId
          
                      itemNodeUpdates.add(new Map<String, Object>{
                          'nodePath' => new Map<String, Object>{ 'dataPath' => dataPath },
                          'attributes' => new List<Object>{
                              new Map<String, Object>{
                                  'attributeName' => 'STI_TenantName__c',
                                  'attributeValue' => salesTransactionItemIdToCustomAggregatedValue.get(lineItemId)
                              }
                          }
                      });
                  }
          
                  // STEP 5 - Create collection context update
                  if (!itemNodeUpdates.isEmpty()) {
                      Map<String, Object> updateInput = new Map<String, Object>{
                          'contextId' => contextId,
                          'nodePathAndAttributes' => itemNodeUpdates
                      };
                      
                      //Step 6 - Update context
                      System.debug('--- PREHOOK: SUBMITTING CONTEXT UPDATE ---');
                      System.debug(JSON.serializePretty(updateInput));
                      industriesContext.updateContextAttributes(updateInput);
                  }
          
                  RevSignaling.TransactionResponse response = new RevSignaling.TransactionResponse();
                  response.status = RevSignaling.TransactionStatus.SUCCESS;
                  return response;
              }
          }
          
          중요
          중요 자산 상태 기간 및 자산 작업 소스에 사용자 정의 필드 정보를 추가하려면 적절한 교차 컨텍스트 매핑을 만듭니다.
           
          로드 중
          Salesforce Help | Article