Are you struggling to fit your migrated data into your target Salesforce environment?
Is there a need for creating multiple fields?
Don’t want to lose the data but don’t have the fields to migrate it to?
If the answers to most or all of your questions is ‘yes’, then this article can help you achieve all the above without creating any new fields and without suffering any data loss.
Where can you use this technique?
Lack of fields on the Target as compared to the Source environment
Data model does not match between the two environments
Do not want to create new fields in the Target environment
Do not have a separate custom object to hold the data
Figure 1 Salesforce data model not matching
How to achieve this?
We will extract all the data from the source environment and insert it into the Description field of the Target environment using TALEND.
Assumptions
We have migrated the data of Productsobject (OpportunityLineItem) from Source org.into a Description field (Special_Instruction__c) of Opportunity object in Target org.
We are using Excel to extract data from Source environment and a Salesforce connection to push the data on the Target environment. We can also create a Salesforce connection for both the environments (Recommended way).
Process
Step 1: Create a Salesforce connection.
For this you need 3 parameters:
Username
Password
Security Token
Figure 2 Create a Salesforce connection
You need to enter all the credentials for the Source environment.
Note:If you are connecting to a UAT environment be sure to change the URL in the tSalesforceConnection component.
Step 2:In this step we need to extract the data from both the source files.
Figure 3 Job Design in TALEND
To achieve the above process first you need two files:
Source File:In this file you need all the Product data (Opportunity Line Item data) along with the OpportunityId
Target File:In this file you need the Opportunity Id from the Target
Step 3:In this step we need to:
Insert the two files into the tMap
Apply an inner join between the two files.
Concatenate all the product data into a single variable and add a null check to all the fields before inserting them into variables.
Insert the variable into the Opportunity field.
Figure 4 tMap Design in TALEND
In this method we have added “|” to separate the data you can choose another symbol as per your convenience.
Note: Select the same selections in the tMap as highlighted above.
Step 4: After all the description is concatenated add a tDenormalize to concatenate the records with the same Opportunity Id based on the Description field.
Step 5:In this step use a tSalesforceOutput component to update the description field for the respective opportunity.
Finally attaching the complete job for reference.
More ways to implement the above approach:
Extracting data from Salesforce rather than Excel
Using other objects like Account, Contact etc.
Pushing data into Salesforce with Excel
Merging Product Data with Billing data
Conclusion
In a nutshell, we can say that whether your migration is for small or large data, you need to process your data in an efficient way. In your data migration journey, Talend can be your partner for ensuring hassle-free migration.
About Girikon
Girikon – a global provider of quality IT services houses a team of skilled Salesforce professionals including Salesforce consultants, administrators and developers.
A new crisis Covid-19 has hit us suddenly and while it seems that the earth we are living in has stopped spinning and life around us is stuck, there is a ray of light that we are alive and not buckling down. Part of the reason I am saying so, is because you are reading this blog and we are still connected through the internet. We are ALIVE & will OVERCOME the challenges to get back to normalcy like before.
In this ever-evolving business landscape, the need of the hour is to be Agile in order to stay ahead of the competitors. If we fail to adapt ourselves as per the changing dynamics, we face the risk of being left out or await Lady luck to smile on us. Let’s cite the example of a product – the demad for which experiences a constant shift in different circumstances.
So, how do businesses keep up with such changing demads? The best way to deal with the challenge is to change the price of the product according to the demand. Seasonal fluctuation in demand also affect the business.To deal with this situation, we can offer seasonal pricing.Offering seasonal pricing means charging different pricing for the same product in different seasons. This is where Calendarize Pricing functionality comes into picture.
What is Calendarize Pricing?
Calendarize Pricing is the feature through which we can change the price of the product for a certain interval of time as per the business requirement. It is an automated process in which, once we set(either increase or decrease) the price of the product for a particular time period, it will automatically show the changed effective price for that time period.
Why do we need calendarize pricing?
Today’s market is driven by customers and their requirements keep on changing. So, to deal with this changing environment,businesses should have access to solutions that can scaled to fulfil the changing market requirements.
It’s good to have a feature like ‘Calendarize Pricing’ especially for business that have global presence. People across different geographies have different requirement. For instance, a product finding wide acceptance and demand in a particular geographical region might not find equal demand or acceptance in other regions or geography.
Calendarize pricing functionality is tailor developed in a way that allows users to set the pricing on different levels basis current market requirement..
Factors influencing the market
There are many factors that influence the market and its demand. Listed below are few of the many factors that influence the market and the demand for a particular product:
Inflation
Recession
Competition in the market
More demand
Different region
Market always depends on the economic health of the country. Inflation and Recession are the two reflectors of this economic health.While moderate inflation is good for the economy, recession brings the economy to a standstill.
Factors Influencing Pricing Decisions:
As we can see in the picture, there are various internal factors like Cost, Company Objectives, Organisational Factors, Marketing Mix and Product Differentiation that influence the product pricing. For example if a company is expanding its business and entering into a new country, it would keep the price of the product low to capture the market.
External Factors like Competition, Demand, Suppliers, Economical Conditions, Consumers, Government regulations etc. have a huge impact on deciding the price of a product. For instance, if we have tough competition in the market we will have to reduce the price of the product to gain the market and if the demand is high, we can sell the product at higher price and vice-e-versa.
Advantages of Calendarize Pricing:
Same product can have a different price for a different time period.
Same product can have different price for the same event in different regions.
Same price-book can be used for different regions
As we don’t need to change the price-book, it saves effort and money.
Easy management of price according to demand and supply.
Applicable to any sales cycle but not restricted to any event vertical.
Conclusion
In today’s ever-evolving business landscape, change is the only constant. The only way to remain competitive is to keep evolving as per the changing market conditions. The same applies for a product, the demand of which is dependent on different market conditions. To sustain in a dynamic business environment, pricing of the product should be changed as per the existing market condition, geographical location and product demand.
The Calendarize Pricing functionality can be a handy solution for organizations looking to successfully deal with the current crisis, as well as the post epidemic situation.
About Girikon
Girikon – a reputed name in the IT space offers businesses across different industries with wide array of end-to-end Salesforce implementation, Salesforce support and Salesforce consulting services.
In today’s competitive business landscape maintaining positive customer relationships while ensuring business growth has become a challenge. To cater to the needs of your customers in the best possible way, it’s important to understand the behavior, preferences, and the pain points of your customers. This would help you drive ‘customer success’ and take it to the next level.
What is customer success?
When customers achieve desired results or value post interactions with your organization then customer success is achieved. It is contrary to customer support, where you or your customer support team manages to merely resolve the issues, which customers might have come up with. Rather customer success is all about a proactive approach of reaching out to customers, anticipating problems even before they happen, and providing with an appropriate solution by stepping into their shoes.
A customer success manager forms a direct relationship with the customers provides them with value-added services. This helps customers to grow and achieve their goals while building a strong relationship with the business.
Why do we Need a CSM (Customer Success Manager)?
The role of a CSM within a business environment cannot be denied. They act as a bridge between the organization and the customers. Besides having in-depth knowledge of their customer’s business, a good customer success manager should have excellent communication skills, which allows them to comprehend and communicate common customer behaviors to the sales, marketing, and product teams.
Another important quality, which a customer success manager should possess, is an in-depth understanding of your product. This would help them keep their customers updated about the product including their expiration dates, renewal dates, new product versions, and more. This is particularly important to retain your customers and earn their loyalty.
Within a business environment, a customer success manager should have know-how about their offerings and provide a solution that will satisfy customers and provide them with the desired outcome. However, delivering an impactful solution to your customers requires gaining insights from data gathered from multiple touchpoints.
How Salesforce can help?
Salesforce is a cloud-based CRM which can be leveraged to seek support in the following areas:
Subscription Management
Gartner predicts that by 2020 over 80% of software vendors will change their business model from traditional license and maintenance to subscription-based services. Since Salesforce is cloud-based and 100% mobile compatible, you can access it anytime and from anywhere. With the help of dashboards, you can manage all of your subscriptions in real-time. Returning customers are always the most valuable assets for an organization and you as a customer success manager need to put forth your best foot to show them how much they mean to you. And since subscription-based business is the next big thing, Salesforce subscription management can turn out to be a deciding factor in Customer Success.
Salesforce Communities
Community Cloud is a Salesforce platform that can be used for connecting with customers, partners and employees. We can easily communicate with internal users and portal users, and external users.Using Salesforce Communities, you can:
Drive more sales by connecting your employees with distributors and suppliers
Deliver a great service by giving the customers one place to get answers
Automated Proposal Generation
CPQ (Configure, Price, and Quote) software can help streamline the CPQ process so that sales reps can focus on other sales activities. They can automate the proposals and generate quotes so that they don’t have to do it manually all the time, which can save time and they can concentrate ontheir customers easily. CPQ produces accurate and highly configured sales quotes for customers, which allows them to not only sell more, but sell faster as it speeds up and automates the sales cycle.
Contract Management & Renewals
Opportunity object (with a customer “Renewal” record type) can be used to track renewals. With this, you can leverage Sales Cloud functionalities like pipeline, stages, reporting, etc. for your Customer Success team. This will allow you to build dashboards which will be useful in tracking renewal rate, churn rate, monthly recurring revenue etc.Sales Cloud can automate workflows for recurring actions, such as contract renewals and management approvals, which can further provide insights that help in maximizing productivity and profitability.
Automation
You can automate recurring and repetitive tasks using Salesforce. Workflow speeds up the work by automating email responses, field updates, and task assignments. You don’t want to contact your customers every time you need to renew their subscriptions, and neither the customers want the same. Also, remembering all the critical dates like Renewal date and Billing date is a headache. With Trigger and Workflows, you can create automation rules to automatically create and send out bills and email timely which makes things easy for you, as well as your customers.
Support Management
Salesforceresolves cases faster with visibility of all cases and a record of every customer interaction — all on a streamlined dashboard. It streamlines the pipeline for better customer service. Every interaction with customers via phone, voicemail, email or anything else about a case appears in the case history.
Automated Data Load
CSM’s can use Data Loader for the bulk import or export of data. They can use it to insert, update, delete, or export data into Salesforce so that your customers don’t have to do it manually. This eliminates the chances of errors or issues like data loss, data duplicity or any invalid data.
Reports and Dashboards
CSM’s can make informed decisions with real-time reports. Reports and Dashboards provide your team with deep insights of the customer and his business.
The report is a list of data generated based on the pre-defined criteria. It has access to Salesforce data and can be used to display in terms of rows and columns whereas a dashboard is the graphical representation of the data generated by reports. CSM’s can create dashboards for each customer-facing and can view and analyze key data and trends across their customer base and get a better understanding of customer portfolio.
Activities and Meetings
With Salesforce, you are able to get a 360-degree view of your customers along with each and every interaction you have had with them. It can capture all the activities so the entire team has visibility into the customer’s account. You can capture all the information via “Log a Call” or “Log a Meeting” feature in Salesforce which is very useful in tracking the Activities. You can even set an Activity Reminder as well to remind you about any activity scheduled.
Quick Wrap-up:
Customer Success Managers can use Salesforce to help customers achieve business value faster and work more effectively than ever before. By leveraging Salesforce, CSM’s can stay close to the customers and help them achieve the desired outcome and that too with a positive experience. In a nutshell, Salesforce plays an instrumental role in taking organizational success a notch higher by helping their customer achieve success in their endeavors.
About Girikon
As providers of high-quality Salesforce consulting services, Girikon houses a team of experienced and certified Salesforce professionals including Salesforce consultants, and developers.
Salesforce is the most trusted name in the world of CRM software. Salesforce has taken customizability to the next level by allowing its customers to choose between two different user interfaces: Salesforce Lightning, and Salesforce Classic.
Salesforce Classic as the name suggests is the original and older version whereas Salesforce Lightning is the new version that carries several new features that aren’t available with ‘Classic’. What’s new in Salesforce Lightning? Salesforce Lightning is the latest version of the salesforce org’s interface. The intuitive and intelligent design will empower users to navigate the platform seamlessly and work with greater efficiency. This will influence better decisions and help teams to close more deals From Campaign, Leads, Contacts, and Accounts to Opportunity, Pricebook, and Products, etc everything has been re-organized to provide a modern visual appeal. The intent behind redesigning the interface was to make the tool,as well as the data more accessible to Sales Reps so that they can close more deals that too quickly. Let’s take a quick look at the Opportunity display screens images displayed below to draw a clear comparison between the two versions i.e. Salesforce classic and Salesforce Lightning:
Salesforce Lightning Screen
Salesforce Classic Screen
Listed below are some features which have been introduced in SalesforceLightning:
Customizable Home Page: Users can now customize their home page. Now they can show the information they need the most on the Homepage.
Enhanced Reporting Lightning has the Lightning Report Builder which helps in creating improved reports. It also provides improved and efficient visual reporting which saves time involved in creating and reading reports.
Columns on Dashboard In Lightning, Dashboards are not confined to 3 columns anymore.
Activity Timeline With this Sales Reps can now easily keep a track of their planned and accomplished activities for a specific lead, account or opportunity.
Lighting Experience Lightning Experience comes with no extra cost.
In the below image you can see list of new features introduced in Salesforce Lightning.
Source of the above table – https://trailhead.salesforce.com/en/content/learn/modules/lex_migration_introduction/lex_migration_introduction_rightforme
Key Benefits of Salesforce Lightning:
Integration with Einstein AnalyticsEinstein Integration is available in both the Classic and Lightning Version of Salesforce for creating reports and dashboards, but the Lightning version has more integration with Einstein as compared to the Classic.Einstein is a game-changer in itself as it carries its own database that fetches the data from salesforce instance and updates reports and dashboards each hour automatically. It even comes with features like:
Export Dashboard as a picture.
Ability to edit widget on dashboard.
Ability to do advance formula calculation.
Improved Security Salesforce Lightning comes with enhanced security features like ‘Locker Service’. Locker Service helps in safeguarding the platform from malicious data by preventing Lightning components to interact with each other. Besides this ‘Locker’ uses the Content Security Policy to prevent cross-site scripting, which helps in avoiding code injecting attacks.
Opportunities Kanban View It is a visualization tool for opportunities. In the Kanban view, Opportunities are displayed as cards. The lanes/columns in Kanban view represent the different stages of the Opportunity.
Sales Reps can now change the Opportunity stage by simply dragging them from one column to another. Sales Reps can even customize, and personalize alerts on key deals.
New Design One of the major differences between the old and the new version of the salesforce is the User Interface. The Salesforce Lightning offers a better UI experience to its users as it includes features like news about key accounts and deals and performance charts, which were unavailable in the Classic version.
No Extra Cost Salesforce Lightning doesn’t cost an extra penny more than theSalesforce Classic and remains pretty much the same. Long-time users of the Salesforce Classic can move to Salesforce Lightning without paying anything extra for a new license.
Features Unavailable in Salesforce Lightning Listed below are some of the features that are unavailable in the new version:
Custom JavaScript Buttons: Custom buttons that have JavaScript running in the backend in the Classic version will no longer be supported in Lightning. In the Lightning you will be able to replace JavaScript content by using tools like Process Builder, Visual Workflow, etc.
Apps from AppExchange: Many apps that were working in theSalesforce Classic will not be supported in Salesforce Lightning unless they are made Lightning Ready. If any app is not supported in Salesforce Lightning, even then you can continue to use them in Salesforce Classic.
Search: Salesforcehas completely revamped the way search used to work in Salesforce Lightning by removing the Sidebar Search and the Search All button.
Which one should we Opt for? As the sayings goes “Old is Gold but New is Diamond”, in the same way Salesforce Classic was something huge in the early 2000’s but with revamped UI, enhanced analytics, better security, etc. Salesforce Lightning has become a preferred choice. Though the new version i.e Salesforce Lightning offers several new features over its classic counterpart, it’s important to measure the pros and cons of both the system before making a shift.
About Girikon –
As a Salesforce consulting partner, Girikon is an excellent Salesforce Implementation Partner as it helps businesses in the effective implementation of the Salesforce CRM.
XML stand for Extensible Markup Language which is easy to read by human and machine both, it is saved with.xml extension and have markup symbols to describe its file contents like HTML.
XML file should be well structured and have proper opening and closing tags, it is considered as a kind of database in itself. It always start with <?xml version=”1.0″ encoding=”UTF-8″?> which contains its version and the encoding, changing the encoding will let XML to treat special character differently.
JSON stand for JavaScript Object Notation, it is language independent data format and used in exchanging data between a browser and a server. It is text based representation of structured data which is based on key-value pairs. We can convert any JSON into JavaScript and vice-verse.
Note: Before reading any file make sure it is not password protected.
I am reading below file
tFileInputXML
tFileInputXML component Reads an XML structured file row by row to split them up into fields and sends the fields as defined in the schema to the next component.
tFileInputXML component has a few basic properties that needs to be check/uncheck to process data for proper formatting.
In ‘Edit Schema’ we need add one column with type, ‘Document’. Then in ‘Loop Xpath query’ option we need provide tags within XML file, e.g “/”, a simple backslash means file will be read from beginning to end or we can also provide “/root/value” now under ‘mapping’ in “XPath query” we can provide similar “/” node value to fetch values of all tags.
tXMLMap
TXMLMap is similar to tMAP component, it is an advanced component fine-tuned for transforming and routing XML data flow (data of the Document type), especially when processing numerous XML data sources, with or without flat data to be joined.
In tMap component if we already have XML file, we can import it by right click on doc and select ‘import from XML file’ the schema will be automatically created. In this we have to set loop element, in the above image loop element is ‘value’, so iteration will happen based on ‘value’ tag.
tAdvancedFileXMLOutput
tAdvancedFileOutputXML outputs data to an XML type of file and offers an interface to deal with loop and group by elements if needed.
tAdvancedFileOutputXML can be used in place of tXMLMap. In above image ‘entidad’ column is set as loop element, so iteration will happen on this tag. ‘@id’ is called attribute which means it is sub-element of entidad and we can’t add sub-element under it whereas ‘direction’ is also sub-element of entidad but we can add sub-element under it as we can see in above image.
tFileInputJSON
tFileInputJSON Extracts JSON data from a file and transfers the data to a file, a database table, etc.
JSON stand for ‘JavaScript Object Notation’ is a lightweight data-interchange format and It is based on the JavaScript programming language.
‘Edit schema’ will contain all columns. ‘Read By’ will have 3 options out of which we are taking ‘JsonPath’. We can check ‘Use Url’ if Json file need to be fetched from any website else keep it uncheck. ‘Loop Json query’ is appearing because we have selected ‘JsonPath’ in ‘Read By’ property above, it will have path of tabs in file, please see Json file before this.
In the ‘book’ tag we have 4 attributes which needs to be extracted.
tFileOutputJSON
tFileOutputJSON receives data and rewrites it in a JSON structured data block in an output file.
Below is the file format that we are going to convert into JSON file.
‘Name of data block’ is what comes in JSON at top, see below image.
Edit schema will have all column that need to be mapped.
Output JSON file:
While working on Talend if in case we came across some issue which is not possible to resolve at our end we can raise it to Talend community on this link. Their team will help in solving the problem.
About Girikon:
Girikon is an IT service organization, headquartered in Phoenix, Arizona with presence across India and Australia. We provide cutting-edge Salesforce consulting services and solutions to help your business grow and achieve sustainable success.
What is Snowflake?
How to Use Snowflake data warehouse?
Snowflake Integration with Talend
Talend Snowflake Components
Related ELT Components for Snowflake
What is Snowflake?
Snowflake is analytic cloud data warehouse build on top of Amazon Web Services (AWS) cloud Infrastructure and is a true SaaS (Software as a Service) offering platform. There is no need to select, install, configure or manage any hardware. And also, there is no software you need to install, configure or manage. It cannot be run on any private cloud or hosted Infrastructure. All needed ongoing management, maintenance and tuning is handled by snowflake itself.
Key Capabilities
AWS and Azure Only (As on Date)
No PK/FK Enforcement (Informational only)
Snowflake SQL
DDL/DML
SQL Functions
User Defined Functions/Stored Procedure (using java Script)
Views/Materialized Views
ACID Transactions
Analytical Aggregations, Windowing and Hierarchical Queries
Integration Supports
Data integration Tools (Talend, Informatica, Pentaho etc.)
Self-Services BI Tools (Tableau, QlikView, Spotfire etc.)
Big Data Tools (Kafka, Spark, Databricks etc.)
JDBC/ODBC Drivers
Native Language Connectors (Python, Go, Node.jsetc.)
SQL Interface & Client
Snowflake web Interface
Snowflake CLI
DBeaver
Unique Features
Scalability (Storage and Compute)
User Experience (Performance)
No Indexing
No Performance Tuning
No Partitioning
No Physical Storage Design
Tunable pay per use
How to use Snowflake data warehouse
It is pretty easy to learn and handle snowflake. You can find open source 30 days trial version. Provide all the details required and do sign up for the first time. After login you can see the screen like this:
From the right-side menu, you can switch Role, Warehouse, Database and Schema. To create all these, you can run simple create SQL query on worksheet provided. There are few tabs you can see databases, Warehouse, Worksheet, History and Account on topmost menu. All created database you can see on database tab and simultaneously warehouse and history details you can find. If you interested in detailed information about snowflake architecture visit snowflake documentation here https://docs.snowflake.com/en/.
Snowflake Integration with Talend
Creating a metadata connection to snowflake
Inside project repository find the Metadata section
Locate the Snowflake icon
Right click and select snowflake connection menu option
Inside connection definition dialog box fill up the details like Name, Account, User ID, Password, Warehouse Name, Schema and database name
Initially just fill the parameter details manually to establish a valid connection but best practice is to convert it into a context group with assigned variables of connection parameters
In Advanced ensure that Login Timeout, Tracing and Role settings as per requirement
Click ok then click Test connection to ensure connection validity
Once made a valid connection click next
Select the tables as per your requirement then click finish
Talend Snowflake Components
tSnowflakeConnection:
Use to manage a connection to Snowflake that can be reuse by another Snowflake components.
You can either drag from metadata snowflake connection and select tSnowflakeConnection component or type tSnowflakeConnection and configure all the properties
Standared properties
Basic Settings
Database
Select the database list and apply accordingly
Property type
Select the way connection details build in or repository
Account
Enter provided account name within double quotes
Snowflake Region
Select AWS region or Azure region from dropdown list
User Id and password
Enter provided login name within double quotes and click […] button to enter password within double quotes
Warehouse
Enter Warehouse name within double quotes as per your project
Schema
Enter schema name to be used within double quotes
Database
Enter database name to be used within double quotes
Advance settings
Use custom snowflake Region
To use customize snowflake region select the checkbox and provide region id as per region used within double quotes like eu-west-1 or east-us
Login Timeout
Specify login timeout to wait for response when connecting to snowflake before returning an error
Role
Provide the snowflake role you have assigned if empty it will take public role automatically granted
TStatCatcher Statistics
This check box is for gather the job processing metadata at the job level as well as component level
Global variables
ERROR_MESSAGE
This is the error message generated by the component when error occurs
Usage
Usage Rule
It creates a snowflake connection and works with other sub jobs that reuse this connection using trigger link
tSnowflakeInput:
Use to reads data from a snowflake table into the data flow of your job based on an SQL query.
Standard properties
Basic settings
Database
Select the database list and apply accordingly
Property type
Select the way connection details build in or repository
Connection Component
Select the connection component and use existing connection
Account
Enter provided account name within double quotes
User Id and password
Enter provided login name within double quotes and click […] button to enter password within double quotes
Warehouse
Enter Warehouse name within double quotes as per your project
Schema
Enter schema name to be used within double quotes
Database
Enter database name to be used within double quotes
Table
Click […] button and in select snowflake table to be used
Schema and Edit Schema
create and store the schema locally for this component or use already created schema in the repository. You can reuse it in various projects and job designs.
Manual query
Select the checkbox and write proper SQL query within double quotes
Condition
Enter the Boolean expression to be used to filter data from your snowflake table within double quotes
Advance settings
Login Timeout
Specify login timeout to wait for response when connecting to snowflake before returning an error
Role
Provide the snowflake role you have assigned if empty it will take public role automatically granted
Tracing
Use for taking log for snowflake JDBC driver
Allow snowflake to convert column to uppercase
Select checkbox to convert lowercase to uppercase in the defined table name.
This property will not available if you select Manual query check box
TStatCatcher Statistics
This check box is for gather the job processing metadata at the job level as well as component level
Global variables
ERROR_MESSAGE
This is the error message generated by the component when error occurs
NB_LINE
Provide the number of rows proceed and returns integers
Usage
Usage Rule
This component sends data to other components via row link
tSnowflakeOutput:
Use to insert, update, upsert or delete data in a output snowflake table incoming from its preceding component. It uses the bulk loader for high performance database operations provided by snowflake.
Standard properties
Basic settings
Database
Select the database list and apply accordingly
Property type
Select the way connection details build in or repository
Connection Component
Select the connection component and use existing connection
Account
Enter provided account name within double quotes
User Id and password
Enter provided login name within double quotes and click […] button to enter password within double quotes
Warehouse
Enter Warehouse name within double quotes as per your project
Schema
Enter schema name to be used within double quotes
Database
Enter database name to be used within double quotes
Table
Click […] button and in select snowflake table to be used
Schema and Edit Schema
create and store the schema locally for this component or use already created schema in the repository. You can reuse it in various projects and job designs.
Output Action
Select the operation to insert, delete, update or merge(upsert) data in snowflake tables
Advance settings
Use custom snowflake region
To use customize snowflake region select the checkbox and provide region id as per region used within double quotes like eu-west-1 or east-us
Login Timeout
Specify login timeout to wait for response when connecting to snowflake before returning an error
Role
Provide the snowflake role you have assigned if empty it will take public role automatically granted
Tracing
Use for taking log for snowflake JDBC driver
Allow snowflake to convert column to uppercase
Select checkbox to convert lowercase to uppercase in the defined table name.
This property will not available if you select Manual query check box
TStatCatcher Statistics
This check box is for gather the job processing metadata at the job level as well as component level
Global variables
ERROR_MESSAGE
This is the error message generated by the component when error occurs
NB_LINE
Provide the number of rows proceed and returns integers
NB_REJECT
Provide the number of rows rejected and returns integers
NB_SUCCESS
Provide the number of rows Successfully proceed and returns integers
Usage
Usage Rule
It is end component of a data flow in your job. It receives data from other component via
Row > Main link and provide the error information like
The name of the column in error, The number of row in error, The category of the error, such as parsing error or a conversion error, The character offset in the line in error, SQLSTATE for the error or Snowflake error code
tSnowflakeClose:
Use for close active snowflake connection and released the occupied resources
Standard properties
Basic settings
Database
Select the database list and apply accordingly
Connection Component
Select the component that opens the connection you need to close from the drop-down list
Advance settings
TStatCatcher Statistics
This check box is for gather the job processing metadata at the job level as well as component level
Global variables
ERROR_MESSAGE
This is the error message generated by the component when error occurs
Usage
Usage Rule
This component is more commonly used with other snowflake component like tSnowflakeConnection component
Related ELT Components for Snowflake
tELTInput:
Use to adds as many tables as required for the SQL statement to be executed. And the standard tELTInput component belongs to the ELT family.
Standard properties
Basic settings
Schema and Edit Schema
create and store the schema locally for this component or use already created schema in the repository. You can reuse it in various projects and job designs
Default table name
Enter default table name within double quotes
Default Schema name
Enter default schema name within double quotes
Mapping
Enter and specify the metadata file for the database to be used. The metadata mapping file is used for data type conversion between database and java
Advance settings
TStatCatcher Statistics
This check box is for gather the job processing metadata at the job level as well as component level
Global variables
ERROR_MESSAGE
This is the error message generated by the component when error occurs
To fill up a field or expression with a variable, press ctrl+ space to access the variable list and choose the variable to use from it.
Usage
Usage Rule
This component sends schema information to tELTMap via row link
Note that the output link to be used with these components must correspond strictly to the syntax of the table name.
Note:
The ELT components do not handle actual data flow but only the schema information
tELTMap:
It is same as tMap component uses the tables provided as input to feed the parameter in the built SQL statement. The statement can include inner or outer joins to be implemented between tables or between one table and its aliases. It belongs to ELT family.
Standard properties
Basic settings
Use an existing Connection
Select the connection component click to existing connection and use relevant connection
ELT Map Editor
The ELT Map editor allows you to define the output schema and make a graphical build of the SQL statement to be executed. The column names of schema can be different from the column names in the database.
User Id and password
Enter provided login name within double quotes and click […] button to enter password within double quotes
Property type
Either Build-In or Repository.
Build-in: No property data stored centrally.
Repository: select the repository file to store the properties
Mapping
create and store the schema locally for this component or use already created schema in the repository. You can reuse it in various projects and job designs.
Advance settings
Additional JDBC parameter
Add connection properties for additional DB connection you are creating. No need to use if you have selected use an existing connection in basic settings.
TStatCatcher Statistics
This check box is for gather the job processing metadata at the job level as well as component level
Global variables
ERROR_MESSAGE
This is the error message generated by the component when error occurs
To fill up a field or expression with a variable, press ctrl+ space to access the variable list and choose the variable to use from it.
Usage
Usage Rule
This component sends schema information to tELTOutput via row link
Note that the output link to be used with these components must correspond strictly to the syntax of the table name.
Note:
The ELT components do not handle actual data flow but only the schema information
tELTOutput:
Use for inserts the data according to the output schema defined in the tELTMap component including action and clauses on the table specified.
Standard properties
Basic settings
Action on Table
Select an operation like None, Drop and create table, create table, create table if does not exists, drop table if exist and create, Truncate table as per your requirement from the dropdown menu
Action on Data
Select and perform Insert, Update and Delete operations accordingly
Schema and Edit Schema
create and store the schema locally for this component or use already created schema in the repository. You can reuse repository n various projects and job designs.
Where clause (for Update and Delete only)
Enter a clause to filter the data to be updated or deleted during the update or delete operations.
Default Table Name
Enter default table name within double quotes
Default Schema Name
Enter default schema name within double quotes
User Defined Table Name
Select the checkbox to define a different output table name between double quotes, in the appeared Table Name field
Mapping
Enter and specify the metadata file for the database to be used. The metadata mapping file is used for data type conversion between database and java
Advance settings
Use Update Statement without Subqueries
Select option to generate an UPDATE statement for the database. Option is available only when update is selected from the Action on data in basic settings.
TStatCatcher Statistics
This check box is for gather the job processing metadata at the job level as well as component level
Global variables
ERROR_MESSAGE
This is the error message generated by the component when error occurs
NB_LINE
Provide the number of rows proceed and returns integer
NB_LINE INSERTED
The number of rows inserted and returns integer
Usage
Usage Rule
This component is used with tELTMap via row link
Note that the output link to be used with these components must correspond strictly to the syntax of the table name.
Note:
The ELT components do not handle actual data flow but only the schema information
Final Thoughts:
Traditional data warehousing methods and technologies are faced with a major challenge to provide the kind of service, simplicity and value required to sustain in today’s demanding and rapidly changing business environment.
The magic combination of Snowflake and Talend –a Cloud data integration leader is not just super fun and easy to work with but is also an attractive proposition as a Cloud Data warehousing solution.
About Girikon:
Girikon is a reputed name in the Salesforce consulting, Salesforce implementation and Salesforce support space offers end-to-end IT services in order to cater to the needs of clients across different industry verticals.
Customers continue to be the most important assets for any organization and to ensure long-term relationship with your customers, it’s important to cater to their needs in the best possible way.
One of the most effective ways of doing so, is to constantly upgrade your products and services, in a way that fulfils the evolving requirement of your customers. In other words, create new version of your products through new releases and upgrades.
If you are leveraging the Salesforce platform, you will have to keep pace with all the upgrades that it keeps releasing time and again.
What is Salesforce Upgrade?
Salesforce releases new upgrade from time to time and to improve the performance, logic, and usability of your software, it is essential to upgrade it to the new version. Besides releasing regular upgrades that could be used to improve a products functionality and performance, Salesforce has illustrated seamless upgrades that are critical to customer success.
Salesforce takes up to five minutes for upgrades and users will not see any difference when using the new Salesforce release. Changes with the new release will not activate by default and only salesforce admin can activate the new features using the Setup menu.
What is the Impact on Interface?
During the upgrade, our customizations are preserved, and Salesforce gives the same effects having the same consequences.
During the upgrade, the Session Id is inactivated, and if any interface is running at that time, we’ll get ‘INVALID_SESSION_ID’ error.
We cannot run our batches during the upgrade period, as the upgrade window can break our batch, we’ll have both valid and invalid data in our org.
To manage this, what we need to do is:
Monitor the validation/deployment results and check the post-deployment steps. If we need to run a batch after deployment checks the execution result of the batch. If it failed, we have to run it again. This has an impact on our scheduling (stop cascade batches and implement a retry every 30 minutes for example)
We need to plan our batches after or before the upgrade period.
We need to implement to run the same batch once again to continue the process without altering the data already processed.
For a batch update to keep data consistency, we need to use transactions. It is native for batch Apex, but when using the API (custom development, ETL connector (i.e. TALEND, dataloader, etc.), we are not able to keep data integrity. The only way to keep it is by creating Apex Webservices that will be accessed by our batch.
Is there any impact on Connected Users?
During upgrade all the users need to invalidate their Session Idso that they are unable to connect the Salesforce until the upgrade process has finished. Users receive an error message letting them know that the service is unavailable during the upgrade and are prompted to log in again when the upgrade is complete.
To manage this, we need to do:
Share an upgrade timeline plan with all users so they know when you will upgrade, and how often
Inform the user when they can log in into the system
Share the new document, if any, if there is a change in the Salesforce UI/UX
Best Practices to be followed
If the Salesforce upgrade is not planned, there might be cases where end-users may not be able to access Salesforce after the completion of the update.
In order to avoid unexpected service disruptions, we may need to take the following actions:
1) Enable “My Domain”
NOTE: “My Domain” is required for customers who have requested the org migration.
2) Update the hard-coded references if any,
for e.g. test-abc.salesforce.com and make sure to update them to the right URLs (for example, <yourdomain>.salesforce.com, abc.salesforce.com) prior to the org migration. Also, if there is any hardcoded Id in the code, make sure to update them dynamically.
3) If the Salesforce org has set up corporate network settings or any email security filters to restrict the access to only certain IP ranges, make sure to update the lists to include the newest ranges. You can whitelist the IP ranges in the Network Setting of Salesforce.
4) If there is an issue in integration following the maintenance, prepare to refresh integrations.
Why to Upgrade and what are the benefits?
Salesforce has the capability to work with earlier released features even if those features are supplanted by new functionality.
Salesforce keeps all customers on a single version—i.e. the most recent version—of the product. Therefore, Salesforce provides the same experience, coolest Feature, advancement on compatibility and the latest bug fixes.
Conclusion
It is very much required to upgrade the Salesforce version to the latest release as it can eliminate the technical risks involved during the implementation. We understand that there could be a service disruption for couple of minutes but it is must have for your organisation since it could also increase your productivity.
As we know that Change is the only Constant, hence we all must go with the flow and suggest the users/clients to upgrade to the newest version as soon as it is live.
About Girikon:
Girikon is a Salesforce Consulting Partner, committed to deliver excellence by providing customers with wide array of quality services including Salesforce implementation, Salesforce consulting and Salesforce support.