自定义报价行项目导入的数据处理引擎定义
如果您希望用户导入自定义字段,请修改数据处理引擎定义。事务管理使用此定义,以在用户上载 CSV 文件后处理报价行项目。
所需的 Edition
| 适用于:Lightning Experience |
| 适用于启用了事务管理的 Revenue Cloud 的 Enterprise、Unlimited 和 Developer Edition |
| 所需用户权限 | |
|---|---|
| 要创建数据处理引擎定义: | 自定义应用程序 与 修改所有数据 |
-
在您开始前,下载现有模板。
- 在“设置”中,查找并选择数据处理引擎。
-
单击与从 CSV 文件模板创建报价行项目对应的
,并选择下载。
由于定义的执行平台类型是核心,因此您无法在可视定义生成器工具中将其打开。
-
打开并编辑下载的 JSON 文件。在自定义期间遵守这些要求。
- 保留 definitionRunMode、executePlatformType 和 processType 字段的默认值。
- 保留 Get_Related_Quote_Line_Items_Relationships_and_Attributes 和 Consolidate_and_Write_Quote_Line_Item_and_Its_Related_Records 节点,以为捆绑产品创建默认子行项目和默认报价行项目属性。
- 在 Get_Related_Quote_Line_Items_Relationships_and_Attributes 自定义节点和 Consolidate_and_Write_Quote_Line_Item_and_Its_Related_Records 节点中维护报价行参考参数。
- 将 isTemplate 字段的值设置为 false。
- 将 API 名称用于自定义字段别名,并将后缀 __c 更改为 _c。
例如,对 SpecialInstructions__c 自定义字段使用别名 SpecialInstructions__c。 - 使用 BatchCalcJobDefinition API 上载更新的数据处理引擎定义。
- 在“导入报价行项目的数据处理引擎定义”字段中选择更新的定义。
示例
在本例中,定义包括处理数据的特定节点和逻辑。
- “获取唯一产品”节点使用聚合函数从筛选的报价行项目行中统计唯一产品代码。
- 附加节点将报价行项目行与没有产品销售模型的组合在一起。
- 合并并写入报价行项目及其相关记录节点会合并报价行项目、关系和属性。然后,将它们一起写入目标对象。
- 筛选器根据 QuoteId 输入变量限制行,并识别没有销售模型的产品。
- 表达式字段识别空白销售模型,并确定 StartDate 和 SubscriptionTerm 的默认值。
{
"FullName" : "SpecialInstructions_c",
"Metadata" : {
"aggregates" : [ {
"description" : "Gets a list of unique products from the quote line item rows and their count.",
"fields" : [ {
"aggregateFunction" : "Count",
"alias" : "UniqueProductCodeCount",
"sourceFieldName" : "ProductCode"
} ],
"groupBy" : [ "ProductCode", "QuoteId" ],
"label" : "Get Unique Products",
"name" : "Get_Unique_Products",
"sourceName" : "Filter_Quote_Line_Item_Rows_by_Quote_ID"
} ],
"appends" : [ {
"description" : "Combines quote line item rows that have a product selling model with those that don’t have one.",
"isDisjointedSchema" : false,
"label" : "Combine Quote Line Item Rows With and Without Product Selling Models",
"name" : "Combine_Quote_Line_Item_Rows_With_and_Without_Product_Selling_Models",
"sources" : [ "Add_Product_Fields_to_Quote_Line_Item_Rows_with_Product_Selling_Models", "Add_Product_Fields_to_Quote_Line_Item_Rows_Without_Product_Selling_Models" ]
} ],
"atomicWritebacks" : [ {
"description" : "Consolidates quote line item, quote line relationship, and quote line item attribute records, and then writes all the records together to the target objects.",
"label" : "Consolidate and Write Quote Line Item and Its Related Records",
"name" : "Consolidate_and_Write_Quote_Line_Item_and_Its_Related_Records",
"writebackObjectRelationships" : [ {
"childWritebackObjectName" : "Create_Quote_Line_Item_Relationship",
"parentWritebackObjectName" : "Create_Quote_Line_Item_Records",
"sequenceNumber" : 1
}, {
"childWritebackObjectName" : "Create_Quote_Line_Attributes",
"parentWritebackObjectName" : "Create_Quote_Line_Item_Records",
"sequenceNumber" : 1
} ],
"writebackSequence" : 1
} ],
"customNodes" : [ {
"description" : "Gets child line item, relationship, and attribute records for the input quote line items. It also adds QuoteLineReference values to these records. The Composite Writeback node uses these values to write the related records together.",
"extensionName" : "GetRelatedLinesRelationshipsAndAttributes",
"extensionNamespace" : "TransactionManagement",
"label" : "Get Related Quote Line Items, Relationships, and Attributes",
"name" : "Get_Related_Quote_Line_Items_Relationships_and_Attributes",
"parameters" : [ {
"name" : "Attribute_AttributeName",
"value" : "Attribute_AttributeName"
}, {
"name" : "Attribute_AttributeValue",
"value" : "Attribute_AttributeValue"
}, {
"name" : "Attribute_AttributePicklistValueId",
"value" : "Attribute_AttributePicklistValueId"
}, {
"name" : "Attribute_AttributeDefinitionId",
"value" : "Attribute_AttributeDefinitionId"
}, {
"name" : "Relationship_MainQuoteLineId",
"value" : "Relationship_MainQuoteLineId"
}, {
"name" : "Relationship_AssociatedQuoteLineId",
"value" : "Relationship_AssociatedQuoteLineId"
}, {
"name" : "Relationship_ProductRelationshipTypeId",
"value" : "Relationship_ProductRelationshipTypeId"
}, {
"name" : "Relationship_AssociatedQuoteLinePricing",
"value" : "Relationship_AssociatedQuoteLinePricing"
}, {
"name" : "Relationship_AssociatedQuantScaleMethod",
"value" : "Relationship_AssociatedQuantScaleMethod"
}, {
"name" : "Relationship_ProductRelatedComponent",
"value" : "Relationship_ProductRelatedComponent"
}, {
"name" : "RowType",
"value" : "RowType"
}, {
"name" : "QuoteLineReference",
"value" : "QuoteLineReference"
} ],
"sources" : [ "Add_Default_Fields_to_Quote_Line_Item_Rows" ]
} ],
"dataSpaceApiName" : "default",
"datasources" : [ {
"description" : "Gets all rows from the CSV file, which is used as a data source to create quote line item records.",
"fields" : [ {
"alias" : "BillingFrequency",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "BillingFrequency"
}, {
"alias" : "SubscriptionTerm",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "SubscriptionTerm"
}, {
"alias" : "StartDate",
"dataType" : "Date",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "StartDate"
}, {
"alias" : "SalesPrice",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "SalesPrice"
}, {
"alias" : "QuoteId",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "QuoteId"
}, {
"alias" : "Quantity",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "Quantity"
}, {
"alias" : "ProductSellingModelName",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "ProductSellingModelName"
}, {
"alias" : "ProductName",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "ProductName"
}, {
"alias" : "ProductDescription",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "ProductDescription"
}, {
"alias" : "ProductCode",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "ProductCode"
}, {
"alias" : "EndDate",
"dataType" : "Date",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "EndDate"
}, {
"alias" : "DiscountPercentage",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "DiscountPercentage"
}, {
"alias" : "DiscountAmount",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "DiscountAmount"
}, {
"alias" : "ServiceDate",
"dataType" : "Date",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "ServiceDate"
}, {
"alias" : "RowNumber",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : true,
"name" : "RowNumber"
}, {
"alias" : "QuoteLineGroupId",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "QuoteLineGroupId"
}, {
"alias" : "SpecialInstructions_c",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "SpecialInstructions"
} ],
"fileIdentifier" : "{!CSV_File_ID}",
"fileSource" : "ContentManagement",
"label" : "Get Quote Line Item Rows from a CSV File",
"name" : "Get_Quote_Line_Item_Rows_from_a_CSV_File",
"sourceName" : "Get_Quote_Line_Items_from_a_CSV_File_CSV",
"type" : "CSV"
}, {
"description" : "Gets all price book entries, which are used as a data source to populate pricing information.",
"fields" : [ {
"alias" : "IsActive",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "IsActive"
}, {
"alias" : "Pricebook2Id",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "Pricebook2Id"
}, {
"alias" : "Id",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "Id"
}, {
"alias" : "Product2Id",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "Product2Id"
}, {
"alias" : "ProductCode",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "ProductCode"
}, {
"alias" : "ProductSellingModelId",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "ProductSellingModelId"
} ],
"label" : "Get Price Book Entries from Salesforce Object",
"name" : "Get_Price_Book_Entries_from_Salesforce_Object",
"sourceName" : "PricebookEntry",
"type" : "StandardObject"
}, {
"description" : "Gets all product selling models, which are used as a data source to populate the method by which a product is sold.",
"fields" : [ {
"alias" : "ProductSellingModelId",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "Id"
}, {
"alias" : "ProductSellingModelName",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "Name"
}, {
"alias" : "SellingModelType",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "SellingModelType"
}, {
"alias" : "PricingTerm",
"dataType" : "Numeric",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "PricingTerm"
} ],
"label" : "Get Product Selling Models from Salesforce Object",
"name" : "Get_Product_Selling_Models_from_Salesforce_Object",
"sourceName" : "ProductSellingModel",
"type" : "StandardObject"
}, {
"description" : "Gets all quotes and their related price book IDs. Price books contain the list of products and their prices.",
"fields" : [ {
"alias" : "Pricebook2Id",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "Pricebook2Id"
}, {
"alias" : "Id",
"dataType" : "Text",
"displaySequence" : 1,
"isPrimaryKey" : false,
"name" : "Id"
} ],
"label" : "Get Quote and Related Price Books from Salesforce Object",
"name" : "Get_Quote_and_Related_Price_Books_from_Salesforce_Object",
"sourceName" : "Quote",
"type" : "StandardObject"
} ],
"definitionRunMode" : "OnDemand",
"description" : "Adds quote line items from a CSV file to a quote.",
"doesGenAllFailedRecords" : false,
"executionPlatformObjectType" : "None",
"executionPlatformType" : "CORE",
"filters" : [ {
"criteria" : [ {
"inputVariable" : "QuoteId",
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "QuoteId"
} ],
"description" : "Filters the quote line item rows where the QuoteId field value matches the Quote ID variable value.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Quote Line Item Rows by Quote ID",
"name" : "Filter_Quote_Line_Item_Rows_by_Quote_ID",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"criteria" : [ {
"inputVariable" : "QuoteId",
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "Id"
} ],
"description" : "Filters the quote record where the ID matches the value in the Quote ID variable.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Quote with Matching Quote ID",
"name" : "Filter_Quote_with_Matching_Quote_ID",
"sourceName" : "Get_Quote_and_Related_Price_Books_from_Salesforce_Object"
}, {
"criteria" : [ {
"inputVariable" : "Pricebook2Id",
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "Pricebook2Id"
} ],
"description" : "Filters the price book record where the ID matches the value in the Price Book ID input variable.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Price Book Entries by Price Book ID",
"name" : "Filter_Price_Book_Entries_by_Price_Book_ID",
"sourceName" : "Get_Price_Book_Entries_from_Salesforce_Object"
}, {
"criteria" : [ {
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "IsProductSellingModelEmpty",
"value" : "0"
} ],
"description" : "Filters quote line item rows that have a product selling model.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Quote Line Item Rows with Product Selling Models",
"name" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models",
"sourceName" : "Identify_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"criteria" : [ {
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "IsProductSellingModelEmpty",
"value" : "1"
} ],
"description" : "Filters quote line item rows that don’t have a product selling model.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Quote Line Item Rows without Product Selling Models",
"name" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models",
"sourceName" : "Identify_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"criteria" : [ {
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "IsProductSellingModelBlank",
"value" : "1"
} ],
"description" : "Filters products that don't have a product selling model.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Products Without Product Selling Model",
"name" : "Filter_Products_Without_Product_Selling_Model",
"sourceName" : "Identify_Products_Without_Product_Selling_Models"
}, {
"criteria" : [ {
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "RowType",
"value" : "QuoteLineItem"
} ],
"description" : "Filters all the quote line item records.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Quote Line Item Rows",
"name" : "Filter_Quote_Line_Item_Rows",
"sourceName" : "Get_Related_Quote_Line_Items_Relationships_and_Attributes"
}, {
"criteria" : [ {
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "RowType",
"value" : "QuoteLineRelationship"
} ],
"description" : "Filters all the quote line item relationship records.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Quote Line Item Relationship",
"name" : "Filter_Quote_Line_Item_Relationship",
"sourceName" : "Get_Related_Quote_Line_Items_Relationships_and_Attributes"
}, {
"criteria" : [ {
"operator" : "Equals",
"sequence" : 1,
"sourceFieldName" : "RowType",
"value" : "QuoteLineItemAttribute"
} ],
"description" : "Filters all the quote line item attribute records.",
"filterCondition" : "1",
"isDynamicFilter" : false,
"label" : "Filter Quote Line Attributes",
"name" : "Filter_Quote_Line_Attributes",
"sourceName" : "Get_Related_Quote_Line_Items_Relationships_and_Attributes"
} ],
"isTemplate" : false,
"joins" : [ {
"description" : "Adds price book entry fields to the products based on the product code.",
"fields" : [ {
"alias" : "ProductCode_CSV",
"sourceFieldName" : "ProductCode",
"sourceName" : "Get_Unique_Products"
}, {
"alias" : "Id",
"sourceFieldName" : "Id",
"sourceName" : "Filter_Price_Book_Entries_by_Price_Book_ID"
}, {
"alias" : "IsActive",
"sourceFieldName" : "IsActive",
"sourceName" : "Filter_Price_Book_Entries_by_Price_Book_ID"
}, {
"alias" : "Pricebook2Id",
"sourceFieldName" : "Pricebook2Id",
"sourceName" : "Filter_Price_Book_Entries_by_Price_Book_ID"
}, {
"alias" : "Product2Id",
"sourceFieldName" : "Product2Id",
"sourceName" : "Filter_Price_Book_Entries_by_Price_Book_ID"
}, {
"alias" : "ProductCode",
"sourceFieldName" : "ProductCode",
"sourceName" : "Filter_Price_Book_Entries_by_Price_Book_ID"
}, {
"alias" : "ProductSellingModelId",
"sourceFieldName" : "ProductSellingModelId",
"sourceName" : "Filter_Price_Book_Entries_by_Price_Book_ID"
} ],
"joinKeys" : [ {
"primarySourceFieldName" : "ProductCode",
"secondarySourceFieldName" : "ProductCode"
} ],
"label" : "Add Price Book Entries to Products",
"name" : "Add_Price_Book_Entries_to_Products",
"primarySourceName" : "Get_Unique_Products",
"secondarySourceName" : "Filter_Price_Book_Entries_by_Price_Book_ID",
"type" : "Inner"
}, {
"description" : "Adds the price book ID to quote line item rows based on the quote ID.",
"fields" : [ {
"alias" : "DiscountAmount",
"sourceFieldName" : "DiscountAmount",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "DiscountPercentage",
"sourceFieldName" : "DiscountPercentage",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "EndDate",
"sourceFieldName" : "EndDate",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "ProductCode",
"sourceFieldName" : "ProductCode",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "ProductDescription",
"sourceFieldName" : "ProductDescription",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "ProductName",
"sourceFieldName" : "ProductName",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "ProductSellingModelName",
"sourceFieldName" : "ProductSellingModelName",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "Quantity",
"sourceFieldName" : "Quantity",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "QuoteId",
"sourceFieldName" : "QuoteId",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "QuoteLineGroupId",
"sourceFieldName" : "QuoteLineGroupId",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "RowNumber",
"sourceFieldName" : "RowNumber",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "SalesPrice",
"sourceFieldName" : "SalesPrice",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "ServiceDate",
"sourceFieldName" : "ServiceDate",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "SpecialInstructions_c",
"sourceFieldName" : "SpecialInstructions_c",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "StartDate",
"sourceFieldName" : "StartDate",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "SubscriptionTerm",
"sourceFieldName" : "SubscriptionTerm",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "BillingFrequency",
"sourceFieldName" : "BillingFrequency",
"sourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File"
}, {
"alias" : "Pricebook2Id",
"sourceFieldName" : "Pricebook2Id",
"sourceName" : "Filter_Quote_with_Matching_Quote_ID"
} ],
"joinKeys" : [ {
"primarySourceFieldName" : "QuoteId",
"secondarySourceFieldName" : "Id"
} ],
"label" : "Add Price Book ID to Quote Line Item Rows",
"name" : "Add_Price_Book_ID_to_Quote_Line_Item_Rows",
"primarySourceName" : "Get_Quote_Line_Item_Rows_from_a_CSV_File",
"secondarySourceName" : "Filter_Quote_with_Matching_Quote_ID",
"type" : "Inner"
}, {
"description" : "Adds product selling model fields to products based on the product selling model ID.",
"fields" : [ {
"alias" : "Pricebook2Id",
"sourceFieldName" : "Pricebook2Id",
"sourceName" : "Add_Price_Book_Entries_to_Products"
}, {
"alias" : "PricebookEntryId",
"sourceFieldName" : "Id",
"sourceName" : "Add_Price_Book_Entries_to_Products"
}, {
"alias" : "Product2Id",
"sourceFieldName" : "Product2Id",
"sourceName" : "Add_Price_Book_Entries_to_Products"
}, {
"alias" : "ProductCode",
"sourceFieldName" : "ProductCode_CSV",
"sourceName" : "Add_Price_Book_Entries_to_Products"
}, {
"alias" : "PricingTerm",
"sourceFieldName" : "PricingTerm",
"sourceName" : "Get_Product_Selling_Models_from_Salesforce_Object"
}, {
"alias" : "ProductSellingModelName",
"sourceFieldName" : "ProductSellingModelName",
"sourceName" : "Get_Product_Selling_Models_from_Salesforce_Object"
}, {
"alias" : "SellingModelType",
"sourceFieldName" : "SellingModelType",
"sourceName" : "Get_Product_Selling_Models_from_Salesforce_Object"
} ],
"joinKeys" : [ {
"primarySourceFieldName" : "ProductSellingModelId",
"secondarySourceFieldName" : "ProductSellingModelId"
} ],
"label" : "Add Product Selling Models to Products",
"name" : "Add_Product_Selling_Models_to_Products",
"primarySourceName" : "Add_Price_Book_Entries_to_Products",
"secondarySourceName" : "Get_Product_Selling_Models_from_Salesforce_Object",
"type" : "LeftOuter"
}, {
"description" : "Adds price book entry and product selling model fields to quote line item rows that have a product selling model, based on product code, price book ID, and product selling model name.",
"fields" : [ {
"alias" : "DiscountAmount",
"sourceFieldName" : "DiscountAmount",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "DiscountPercentage",
"sourceFieldName" : "DiscountPercentage",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "EndDate",
"sourceFieldName" : "EndDate",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "ProductDescription",
"sourceFieldName" : "ProductDescription",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "ProductName",
"sourceFieldName" : "ProductName",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "Quantity",
"sourceFieldName" : "Quantity",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "QuoteId",
"sourceFieldName" : "QuoteId",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "QuoteLineGroupId",
"sourceFieldName" : "QuoteLineGroupId",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "SalesPrice",
"sourceFieldName" : "SalesPrice",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "ServiceDate",
"sourceFieldName" : "ServiceDate",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "SpecialInstructions_c",
"sourceFieldName" : "SpecialInstructions_c",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "StartDate",
"sourceFieldName" : "StartDate",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "SubscriptionTerm",
"sourceFieldName" : "SubscriptionTerm",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "BillingFrequency",
"sourceFieldName" : "BillingFrequency",
"sourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models"
}, {
"alias" : "PricebookEntryId",
"sourceFieldName" : "PricebookEntryId",
"sourceName" : "Add_Product_Selling_Models_to_Products"
}, {
"alias" : "PricingTerm",
"sourceFieldName" : "PricingTerm",
"sourceName" : "Add_Product_Selling_Models_to_Products"
}, {
"alias" : "Product2Id",
"sourceFieldName" : "Product2Id",
"sourceName" : "Add_Product_Selling_Models_to_Products"
}, {
"alias" : "SellingModelType",
"sourceFieldName" : "SellingModelType",
"sourceName" : "Add_Product_Selling_Models_to_Products"
} ],
"joinKeys" : [ {
"primarySourceFieldName" : "ProductCode",
"secondarySourceFieldName" : "ProductCode"
}, {
"primarySourceFieldName" : "Pricebook2Id",
"secondarySourceFieldName" : "Pricebook2Id"
}, {
"primarySourceFieldName" : "ProductSellingModelName",
"secondarySourceFieldName" : "ProductSellingModelName"
} ],
"label" : "Add Product Fields to Quote Line Item Rows with Product Selling Models",
"name" : "Add_Product_Fields_to_Quote_Line_Item_Rows_with_Product_Selling_Models",
"primarySourceName" : "Filter_Quote_Line_Item_Rows_with_Product_Selling_Models",
"secondarySourceName" : "Add_Product_Selling_Models_to_Products",
"type" : "LeftOuter"
}, {
"description" : "Adds price book entry and product selling model fields to quote line item rows that don’t have a product selling model, based on product code, price book ID, and product selling model name.",
"fields" : [ {
"alias" : "DiscountAmount",
"sourceFieldName" : "DiscountAmount",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "DiscountPercentage",
"sourceFieldName" : "DiscountPercentage",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "EndDate",
"sourceFieldName" : "EndDate",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "ProductDescription",
"sourceFieldName" : "ProductDescription",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "ProductName",
"sourceFieldName" : "ProductName",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "Quantity",
"sourceFieldName" : "Quantity",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "QuoteId",
"sourceFieldName" : "QuoteId",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "QuoteLineGroupId",
"sourceFieldName" : "QuoteLineGroupId",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "SalesPrice",
"sourceFieldName" : "SalesPrice",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "ServiceDate",
"sourceFieldName" : "ServiceDate",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "SpecialInstructions_c",
"sourceFieldName" : "SpecialInstructions_c",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "StartDate",
"sourceFieldName" : "StartDate",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "SubscriptionTerm",
"sourceFieldName" : "SubscriptionTerm",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "BillingFrequency",
"sourceFieldName" : "BillingFrequency",
"sourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models"
}, {
"alias" : "PricebookEntryId",
"sourceFieldName" : "PricebookEntryId",
"sourceName" : "Filter_Products_Without_Product_Selling_Model"
}, {
"alias" : "PricingTerm",
"sourceFieldName" : "PricingTerm",
"sourceName" : "Filter_Products_Without_Product_Selling_Model"
}, {
"alias" : "Product2Id",
"sourceFieldName" : "Product2Id",
"sourceName" : "Filter_Products_Without_Product_Selling_Model"
}, {
"alias" : "SellingModelType",
"sourceFieldName" : "SellingModelType",
"sourceName" : "Filter_Products_Without_Product_Selling_Model"
} ],
"joinKeys" : [ {
"primarySourceFieldName" : "ProductCode",
"secondarySourceFieldName" : "ProductCode"
}, {
"primarySourceFieldName" : "Pricebook2Id",
"secondarySourceFieldName" : "Pricebook2Id"
} ],
"label" : "Add Product Fields to Quote Line Item Rows Without Product Selling Models",
"name" : "Add_Product_Fields_to_Quote_Line_Item_Rows_Without_Product_Selling_Models",
"primarySourceName" : "Filter_Quote_Line_Item_Rows_Without_Product_Selling_Models",
"secondarySourceName" : "Filter_Products_Without_Product_Selling_Model",
"type" : "LeftOuter"
} ],
"label" : "SpecialInstructions_c",
"parameters" : [ {
"dataType" : "FileIdentifier",
"description" : "The ID of the CSV file that contains the quote line item rows that must be processed to create records.",
"isMultiValue" : false,
"label" : "CSV File ID",
"name" : "CSV_File_ID"
}, {
"dataType" : "Text",
"description" : "The ID of the quote for which quote line items must be created.",
"isMultiValue" : false,
"label" : "Quote ID",
"name" : "QuoteId"
}, {
"dataType" : "Text",
"description" : "The ID of the price book associated with the quote to which the quote line items must be added.",
"isMultiValue" : false,
"label" : "Price Book ID",
"name" : "Pricebook2Id"
} ],
"processType" : "RevenueTransactionManagement",
"status" : "Active",
"transforms" : [ {
"name" : "Identify_Quote_Line_Item_Rows_Without_Product_Selling_Models",
"sourceName" : "Add_Price_Book_ID_to_Quote_Line_Item_Rows",
"label" : "Identify Quote Line Item Rows without Product Selling Models",
"transformationType" : "Expression",
"partitionBy" : [ ],
"orderBy" : [ ],
"expressionFields" : [ {
"alias" : "IsProductSellingModelEmpty",
"expression" : "IF(ISBLANK({ProductSellingModelName} ),1,0)",
"dataType" : "Numeric",
"length" : 1,
"decimalPlaces" : 0
} ],
"droppedFields" : [ ]
}, {
"name" : "Identify_Products_Without_Product_Selling_Models",
"sourceName" : "Add_Product_Selling_Models_to_Products",
"label" : "Identify Products Without Product Selling Models",
"transformationType" : "Expression",
"partitionBy" : [ ],
"orderBy" : [ ],
"expressionFields" : [ {
"alias" : "IsProductSellingModelBlank",
"expression" : "IF(ISBLANK({ProductSellingModelName} ),1,0)",
"dataType" : "Numeric",
"length" : 1,
"decimalPlaces" : 0
} ],
"droppedFields" : [ ]
}, {
"name" : "Add_Default_Fields_to_Quote_Line_Item_Rows",
"sourceName" : "Combine_Quote_Line_Item_Rows_With_and_Without_Product_Selling_Models",
"label" : "Add Default Fields to Quote Line Item Rows",
"transformationType" : "Expression",
"partitionBy" : [ ],
"orderBy" : [ ],
"expressionFields" : [ {
"alias" : "DefaultPeriodBoundary",
"expression" : "IF({SellingModelType} == \"TermDefined\" || {SellingModelType} == \"Evergreen\",\"Anniversary\",NULL)",
"dataType" : "Text",
"length" : 100
}, {
"alias" : "DefaultStartDate",
"expression" : "IF({SellingModelType} == \"OneTime\",{StartDate},IF({SellingModelType} == \"TermDefined\" && ISBLANK({StartDate}),TODAY(),IF({SellingModelType} == \"Evergreen\" && ISBLANK({StartDate}),TODAY(),{StartDate})))",
"dataType" : "Date"
}, {
"alias" : "DefaultSubscriptionTerm",
"expression" : "IF({SellingModelType} == \"OneTime\" || {SellingModelType} == \"Evergreen\",{SubscriptionTerm},IF({SellingModelType} == \"TermDefined\" && ISBLANK({SubscriptionTerm}),IF(ISBLANK({EndDate}),TEXT(FLOOR({PricingTerm})),{SubscriptionTerm}),{SubscriptionTerm}))",
"dataType" : "Text",
"length" : 100
} ],
"droppedFields" : [ ]
} ],
"writebacks" : [ {
"name" : "Create_Quote_Line_Item_Records",
"label" : "Create Quote Line Item Records",
"sourceName" : "Filter_Quote_Line_Item_Rows",
"targetObjectName" : "QuoteLineItem",
"writebackRecordMaxLimit" : 0,
"isChangedRow" : false,
"shouldCreateTargetObject" : false,
"isExistingDataset" : false,
"description" : "Creates quote line item records for all the rows in the CSV file, including their child line items.",
"canWrtbckToNonEditableFields" : false,
"storageType" : "sObject",
"operationType" : "Insert",
"writebackSequence" : 1,
"fields" : [ {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "PricebookEntryId",
"targetFieldName" : "PricebookEntryId"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Product2Id",
"targetFieldName" : "Product2Id"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Quantity",
"targetFieldName" : "Quantity"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "QuoteId",
"targetFieldName" : "QuoteId"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "DiscountAmount",
"targetFieldName" : "DiscountAmount"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "DiscountPercentage",
"targetFieldName" : "Discount"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "DefaultStartDate",
"targetFieldName" : "StartDate"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "DefaultPeriodBoundary",
"targetFieldName" : "PeriodBoundary"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "DefaultSubscriptionTerm",
"targetFieldName" : "SubscriptionTerm"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "EndDate",
"targetFieldName" : "EndDate"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "ProductDescription",
"targetFieldName" : "Description"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "ProductName",
"targetFieldName" : "CustomProductName"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "SalesPrice",
"targetFieldName" : "UnitPrice"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "ServiceDate",
"targetFieldName" : "ServiceDate"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "QuoteLineGroupId",
"targetFieldName" : "QuoteLineGroupId"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "BillingFrequency",
"targetFieldName" : "BillingFrequency"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "SpecialInstructions_c",
"targetFieldName" : "SpecialInstructions__c"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "QuoteLineReference",
"targetFieldName" : "QuoteLineReference"
} ]
}, {
"name" : "Create_Quote_Line_Item_Relationship",
"label" : "Create Quote Line Item Relationship",
"sourceName" : "Filter_Quote_Line_Item_Relationship",
"targetObjectName" : "QuoteLineRelationship",
"writebackRecordMaxLimit" : 0,
"isChangedRow" : false,
"shouldCreateTargetObject" : false,
"isExistingDataset" : false,
"description" : "Creates quote line item relationship records for all the quote line items.",
"canWrtbckToNonEditableFields" : false,
"storageType" : "sObject",
"operationType" : "Insert",
"writebackSequence" : 2,
"fields" : [ {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Relationship_AssociatedQuoteLinePricing",
"targetFieldName" : "AssociatedQuoteLinePricing"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Relationship_ProductRelationshipTypeId",
"targetFieldName" : "ProductRelationshipTypeId"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Relationship_AssociatedQuantScaleMethod",
"targetFieldName" : "AssociatedQuantScaleMethod"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Relationship_ProductRelatedComponent",
"targetFieldName" : "ProductRelatedComponentId"
}, {
"isAutogenerated" : false,
"parentName" : "QuoteLineItem",
"relationshipName" : "MainQuoteLine",
"runtimeParameter" : false,
"sourceFieldName" : "Relationship_MainQuoteLineId",
"targetFieldName" : "QuoteLineReference"
}, {
"isAutogenerated" : false,
"parentName" : "QuoteLineItem",
"relationshipName" : "AssociatedQuoteLine",
"runtimeParameter" : false,
"sourceFieldName" : "Relationship_AssociatedQuoteLineId",
"targetFieldName" : "QuoteLineReference"
} ]
}, {
"name" : "Create_Quote_Line_Attributes",
"label" : "Create Quote Line Attributes",
"sourceName" : "Filter_Quote_Line_Attributes",
"targetObjectName" : "QuoteLineItemAttribute",
"writebackRecordMaxLimit" : 0,
"isChangedRow" : false,
"shouldCreateTargetObject" : false,
"isExistingDataset" : false,
"description" : "Creates quote line item attribute records for all the quote line items.",
"canWrtbckToNonEditableFields" : false,
"storageType" : "sObject",
"operationType" : "Insert",
"writebackSequence" : 2,
"fields" : [ {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Attribute_AttributeDefinitionId",
"targetFieldName" : "AttributeDefinitionId"
}, {
"isAutogenerated" : false,
"parentName" : "QuoteLineItem",
"relationshipName" : "QuoteLineItem",
"runtimeParameter" : false,
"sourceFieldName" : "QuoteLineReference",
"targetFieldName" : "QuoteLineReference"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Attribute_AttributeName",
"targetFieldName" : "AttributeName"
}, {
"isAutogenerated" : false,
"runtimeParameter" : false,
"sourceFieldName" : "Attribute_AttributePicklistValueId",
"targetFieldName" : "AttributePicklistValueId"
} ]
} ]
}
}
本文章是否解决您的问题?
请与我们共享您的想法,以便我们进行改进!

