当前位置: 首页 > news >正文

salesforce SF CLI 数据运维经验分享

SF CLI data默认使用bulk api v2, 数据操作效率有了极大的提高。

Bulk api v2的优点:

  1. 执行结果可以很直观的从Bulk Data Load Jobs中看到。相较于bulk api v1,只能看到job执行in progress,或者closed的状态,有了很大的改善。
  2. 执行速度快,query, upsert,delete执行效率高。
  3. 数据upload到服务器后,可以直观的从UI上查看进度。可以关客户端程序。

 Bulk api v2的缺点很明显,执行结果需要使用api工具获取,不能很直观的从ui上查看。

数据运维常用CLI(Bulk V2):

1. update/ insert

sf data upsert bulk  --sobject Account --file '.\upsertdata.csv' --external-id Account_Id__c --target-org my-scratch

--external-id:新建数据的时候,-Id,

                      更新数据的时候,改成Auto Number或者external 勾选的文本字段。通常业务提交的数据都是业务Id,如123456,AB11111等。此处填写external id字段可以避免vlookup数据,极大提高了工作效率。

文件编码必须是UTF-8,可以通过notepad++或vs code修改。列名必须是API Name,前后不能有空格.文件最大150M,超过后需要手动截取。或者根据sql现在时间范围。

2. Query

sf data export bulk --query "SELECT Id, Name FROM Account " --output-file export-accounts.csv --wait 10 --target-org my-scratch

这命令可以快速导出数据,用于更新,删除,或者数据对比。缺点就是无法指定列名,无法使用关联关系的字段。

实际使用的时候,可以多条命令行形成一个shell文件,一起执行。查询的结果,需要使用excel编辑一下。

3. Delete

sf data delete bulk --sobject MyObject__c --file files/delete.csv --wait 5 --target-org my-scratch

删除的文件中,只需要Id一列。可以结合Query的命令行快速完成数据的删除工作。

如何获取执行结果

1. setup=》Bulk Data Load Jobs中查看job的执行结果,

2. 如果遇到有错误的情况,使用post man或者其他API工具,根据单个Job Id获取结果。方法如下,或参考SOAP API 文档配置。

获取session Id

URL:

国际版:https://login.salesforce.com/services/Soap/c/v60.0/

阿里版:https://login.sfcrmproducts.cn/services/Soap/c/v61.0/

报文:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enterprise.soap.sforce.com" xmlns:urn1="urn:sobject.enterprise.soap.sforce.com"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><urn:login><urn:username>XXXXX</urn:username><urn:password>XXXXX</urn:password></urn:login></soapenv:Body>
</soapenv:Envelope>

Header:

SOAPAction:/services/Soap/c/60.0/

Content-Type:text/xml

获取失败结果

URL:https://instanceURL/services/data/v59.0/jobs/ingest/{ {_jobId}}/failedResults

header:

Authorization:Bearer { {sessionId}}

http://www.lryc.cn/news/533100.html

相关文章:

  • 5.2Internet及其作用
  • 【蓝桥杯—单片机】第十一届省赛真题代码题解题笔记 | 省赛 | 真题 | 代码题 | 刷题 | 笔记
  • 数据分析:企业数字化转型的金钥匙
  • 网络工程师 (23)OSI模型层次结构
  • DeepSeek添加知识库
  • 2、k8s的cni网络插件和基本操作命令
  • Next.js简介:现代 Web 开发的强大框架(ChatGPT-4o回答)
  • 【DeepSeek:国产大模型的崛起与ChatGPT的全面对比】
  • input 超出maxlength限制后,输入框变红
  • Docker 构建镜像并搭建私人镜像仓库教程
  • doris:MySQL Dump
  • OpenBMC:通过qemu-system-arm运行编译好的image
  • STM32的HAL库开发---通用定时器(TIMER)---定时器脉冲计数
  • 动态规划LeetCode-121.买卖股票的最佳时机1
  • 网安三剑客:DNS、CDN、VPN
  • Linux在x86环境下制作ARM镜像包
  • Vue3+codemirror6实现公式(规则)编辑器
  • Lua中文语言编程源码-第十一节,其它小改动汉化过程
  • Safari常用快捷键
  • Git登录并解决 CAPTCHA
  • Websocket从原理到实战
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_get_options函数
  • 判断您的Mac当前使用的是Zsh还是Bash:echo $SHELL、echo $0
  • Centos执行yum命令报错
  • 订单超时设计(1)--- 如何使用redis实现订单超时实时关闭功能
  • 485网关数据收发测试
  • RabbitMQ快速上手及入门
  • 4种架构的定义和关联
  • 109,【1】攻防世界 web 题目名称-文件包含
  • leetcode90 子集II