Loading
CRM Analytics
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Enable Null Measure Handling in Orgs Created Before Spring ’17

          Enable Null Measure Handling in Orgs Created Before Spring ’17

          Use null measure handling to specify null as the default value for numeric columns in your recipes, dataflows, and CSV uploads. When another default value isn’t specified for a numeric column and null measure handling is enabled, CRM Analytics replaces a blank with a null value. If CRM Analytics was initially set up in your org after the Spring ’17 release, null measure handling is enabled and you can’t disable it.

          Required Editions

          User Permissions Needed
          To enable null measure handling: Customize Application

          If CRM Analytics was initially set up in your org before Spring ’17, contact Salesforce Customer Support.

          After Salesforce makes null measure handling available in your org, you can enable it from Setup. In the Quick Find box, enter Analytics, and select Settings. Select Allow null measure handling in datasets, and then click Save.

          If you’ve used zeros to replace blank values, you might need to perform additional steps because null measure handling can’t retroactively change zeros to nulls.

          After enabling null measure handling, review your dataflows and take these steps as needed.

          1. Update your dataflow definition files to use null instead of 0 in the defaultValue attributes for measure fields in these transformations.
            computeExpression defaultValue: "null"
            computeRelative defaultValue: "null"
            dim2mea measureDefault: "null"
            sfdcDigest defaultValue: "null"
          2. Create instances of long-lived datasets used as a source for dataflows using a null defaultValue for measure fields.
            A long-lived dataset is typically a reference dataset that isn’t updated through a dataflow and is used to augment data in other datasets. For example, you could use a geolocation dataset to augment lead information based on ZIP codes.
          3. If you have incrementally built datasets in which the source data is no longer available, use a custom dataflow to manually convert 0 values to null.
            An incrementally built dataset is created over time by appending rows, such as logs.
          4. Reimplement delta transformations in your dataflows using computeRelative and computeExpression transformations. The delta transformation isn’t supported when null measure handling is enabled. Dataflows containing delta transformations fail.
            In this example, the delta transformation calculates the difference between an opportunity amount and its previous amount. The computeRelative and computeExpression transformations calculate the previous amount and its difference to the current amount, respectively.
            delta TransformationcomputeRelative and computeExpression Transformations
            "Calculate_Delta": {
                  "action": "delta",
                  "parameters": {
                     "dimension": "OpportunityId",
                     "epoch": "CreatedDate_day_epoch",
                     "inputMeasure": "Amount",
                     "outputMeasure": "DeltaAmount",
                     "source": "Extract_Opportunity_History"
                  }
               },
            "Compute_Previous": {
                "action": "computeRelative",
                "parameters": {
                  "partitionBy": [
                    "OpportunityId"
                  ],
                  "orderBy": [
                    {
                      "name": "CreatedDate",
                      "direction": "asc"
                    }
                  ],
                  "computedFields": [
                    {
                      "name": "PrevAmount",
                      "expression": {
                        "sourceField": "Amount",
                        "offset": "previous()",
                        "default": "current()"
                      }
                    }
                  ],
                  "source": "Extract_Opportunity_History"
                }
              },
            "Compute_Delta": {
                "action": "computeExpression",
                "parameters": {
                  "computedFields": [
                    {
                      "name": "DeltaAmount",
                      "type": "Numeric",
                      "precision": 18,
                      "defaultValue": 0,
                      "scale": 2,
                      "saqlExpression": "Amount - PrevAmount"
                    }
                  ],
                  "source": "Compute_Previous"
                }
              },
           
          Loading
          Salesforce Help | Article