Pythonを使用してSalesforceからデータ抽出を自動化する方法
6906 ワード
アナリストは、データ解析を実行するか、ダッシュボードをローカルに構築するために、Salesforceオブジェクトからデータ抽出プロセスを自動化する必要に遭遇します.オートメーションの前に、私の組織のアナリストは、KPIレポートを作成するために、以下の手順を踏まなければなりませんでした Salesforceサイトを通ってログインしてください 手動で複数のレポートのフィールドを更新する 各レポートをCSVファイルとしてダウンロードします 計算を実行し、データを操作し、集約されたデータセットを作成する 最後に、レポートの目的のために消費されるGoogleシートに貼り付けます このプロセスは、手動で、時間がかかり、エラーがちだった.しかし、それはこのようにする必要はありません.単純なPythonスクリプトとSalesforce APIの助けを借りて、プロセス全体を自動化できます.
Pythonを使用したSalesforceデータの取得
開始するには、オープンソースパッケージをインストールしますSimple Salesforce . これは、ユーザーがSalesforceから直接ビルドされたレポートをダウンロードしたり、SOSSPACE APIをクエリすることによって、新しいデータセットを生成する基本的なSalesforce REST APIクライアントです.
PythonパッケージとAPIアクセスを設定する 最初のステップはPython package , これにより、必要なパッケージを全てPythonファイルにインポートできます.
The APIアクセスのためにあなたのSalesforce管理者に手を伸ばしてください. セキュリティトークンを持っていない場合は、Salesforceアカウントにログインし、設定ページに移動します.その後、私の個人情報の下で私のセキュリティトークンをリセットするをクリックします.あなたがこのオプションを見ないならば、あなたのSalesforce管理者に連絡してください.
アクセスあなたのSalesforceデータ
Salesforceからデータを取得するには2種類のオプションがあります.
オプション1:ダウンロードSalesforceレポート
ダウンロードは、Pythonの要求を使用してカスタムビルドSesesforceレポートを構築
SOLEQUESTデータを直接構造化クエリ言語(SQL)に似ていますが、Salesforceデータだけに適用します.SOQLとその制限の詳細についてはSOQL documentation .
メタデータの検索 次のように移動して、オブジェクトとフィールドのAPI名を見つけます. Pythonを使用してSalesforceオブジェクトのすべてのフィールド名を確認するには、次のコマンドを実行します.SalesforceオブジェクトのAPI名は以下の通りです.
シンプルなSalesforceメソッドを提供します
SOQLクエリの結果は順序付き辞書形式です.入れ子になったデータを反復処理し、次のようにDataFrameを生成できます.
データ処理とレポートの自動化
データをPythonでDataFramameとすると、必要に応じてデータのラングリングと集約メトリクスの両方を実行できます.また、データの出力方法を選択することもできます.たとえば、GoogleシートAPIを使用してGoogleシートにエクスポートしてpygsheets Python package またはそれをデータベーステーブルに取り込みます.さらに、プラットフォーム上でPythonスクリプトをスケジュールすることができますAirflow スケジュールされた時間で自動的に実行し、この集約されたデータセットに基づいてダッシュボードを構築します.
結論
うまくいけば、このポスト役に立つ!この単純なスクリプトは、データの抽出とレポート処理を自動化し、マニュアル作業のチーム時間を節約し、エラーを入力するリスクを減らす.詳しくはrefer to our sample code on GitHub .
著者について
Rutuja PatilはSalesforceのプラットフォームAnalyticsチームのAnalytics Managerです.そこで、彼女はビジネス分析、オートメーションに集中して、BIツールを使って報告します.Rutujaは情報システムのMSを持っており、タブローで認定されています.
郵便How to Automate Data Extraction from Salesforce Using Python 最初に現れたSalesforce Developers Blog .
Pythonを使用したSalesforceデータの取得
開始するには、オープンソースパッケージをインストールしますSimple Salesforce . これは、ユーザーがSalesforceから直接ビルドされたレポートをダウンロードしたり、SOSSPACE APIをクエリすることによって、新しいデータセットを生成する基本的なSalesforce REST APIクライアントです.
PythonパッケージとAPIアクセスを設定する
pip install simple_salesforce
from simple_salesforce import Salesforce
import requests
import pandas as pd
from io import StringIO
Salesforce
関数を使用するとAPIに接続することができます(APIアクセスとSalesforce資格情報が必要になります).接続が必要な場合Note: Be sure to protect your passwords and keys; you can set environment variables for these credentials within your script.
sf = Salesforce(username='',password='', security_token='')
アクセスあなたのSalesforceデータ
Salesforceからデータを取得するには2種類のオプションがあります.
オプション1:ダウンロードSalesforceレポート
ダウンロードは、Pythonの要求を使用してカスタムビルドSesesforceレポートを構築
get()
あなたのSalesforceインスタンスURLとレポートのIDをダウンロードする方法.また、を読むことができます.さらにデータ操作のためのデータファイルとしてCSVファイル.sf_instance = 'https://oneappexchange.lightning.force.com/' #Your Salesforce Instance URL
reportId = '' # add report id
export = '?isdtp=p1&export=1&enc=UTF-8&xf=csv'
sfUrl = sf_instance + reportId + export
response = requests.get(sfUrl, headers=sf.headers, cookies={'sid': sf.session_id})
download_report = response.content.decode('utf-8')
df1 = pd.read_csv(StringIO(download_report))
オプション2 : SOQLを使用してデータを照会するSOLEQUESTデータを直接構造化クエリ言語(SQL)に似ていますが、Salesforceデータだけに適用します.SOQLとその制限の詳細についてはSOQL documentation .
メタデータの検索
UserInstall__c
.descri=sf.UserInstall__c.describe()
[field['name'] for field in descri['fields']]
SOQLでデータを取得するシンプルなSalesforceメソッドを提供します
query_all
SOQLを使用してデータを取得します.複数のオブジェクトを一度にクエリすることができますrelationship queries . これは、異なるSalesforceオブジェクトから単一のデータセットにデータをマージする必要がある場合に役立ちます.Listing
別のオブジェクトであり、このオブジェクトからフィールドをdot notation Listing __r.ProviderName__ c
.results=sf.query_all("""
Select
CreatedDate,
Listing __r.RecordTypeSnapshot__ c,
Name,
Listing __r.ProviderName__ c
from UserInstall__c
where CreatedDate=LAST_N_DAYS:7
""")
辞書からのデータフレームの構築SOQLクエリの結果は順序付き辞書形式です.入れ子になったデータを反復処理し、次のようにDataFrameを生成できます.
records = [dict(CreatedDate=rec['CreatedDate'],
Record_Type=rec['Listing__r']['RecordTypeSnapshot__c'],
Name=rec['Name'],
ProviderName=rec['Listing__r']['ProviderName__c'])
for rec in results['records']]
df=pd.DataFrame(records)
データ処理とレポートの自動化
データをPythonでDataFramameとすると、必要に応じてデータのラングリングと集約メトリクスの両方を実行できます.また、データの出力方法を選択することもできます.たとえば、GoogleシートAPIを使用してGoogleシートにエクスポートしてpygsheets Python package またはそれをデータベーステーブルに取り込みます.さらに、プラットフォーム上でPythonスクリプトをスケジュールすることができますAirflow スケジュールされた時間で自動的に実行し、この集約されたデータセットに基づいてダッシュボードを構築します.
結論
うまくいけば、このポスト役に立つ!この単純なスクリプトは、データの抽出とレポート処理を自動化し、マニュアル作業のチーム時間を節約し、エラーを入力するリスクを減らす.詳しくはrefer to our sample code on GitHub .
著者について
Rutuja PatilはSalesforceのプラットフォームAnalyticsチームのAnalytics Managerです.そこで、彼女はビジネス分析、オートメーションに集中して、BIツールを使って報告します.Rutujaは情報システムのMSを持っており、タブローで認定されています.
郵便How to Automate Data Extraction from Salesforce Using Python 最初に現れたSalesforce Developers Blog .
Reference
この問題について(Pythonを使用してSalesforceからデータ抽出を自動化する方法), 我々は、より多くの情報をここで見つけました https://dev.to/salesforcedevs/how-to-automate-data-extraction-from-salesforce-using-python-4e42テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol