SalesforceメタデータAPI:PermissionSetのFieldPermissionsを更新すると、他のオブジェクトの他のFieldPermissionsがリセットされます

Nov 26 2020

メタデータAPIバージョン50.0では、PermissionSetのFieldPermissionsを更新すると、同じPermissionSetの他のFieldPermissionsがリセットされます。

updateMetatdata呼び出しは、バージョン30.0で正しく機能しました。動作が変更されたバージョンがわかりません。

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://soap.sforce.com/2006/04/metadata" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://soap.sforce.com/2006/04/metadata">
  <env:Header>
    <ins0:SessionHeader>
      <ins0:sessionId>XXX</ins0:sessionId>
    </ins0:SessionHeader>
  </env:Header>
  <env:Body>
    <ins0:updateMetadata>
      <ins0:metadata xsi:type="ins0:PermissionSet">
        <tns:fieldPermissions>
          <tns:field>Receipt__c.Notes__c</tns:field>
          <tns:editable>true</tns:editable> 
          <tns:readable>true</tns:readable></tns:fieldPermissions> 
          <ins0:fullName>JasminePermissionSet</ins0:fullName> 
          <tns:label>JasminePermissionSet</tns:label>
      </ins0:metadata>
    </ins0:updateMetadata>
  </env:Body>
</env:Envelope>

私は何かが足りないのですか?

回答

1 sfdcfox Nov 25 2020 at 23:50

これはバージョン40.0で変更され、明らかに電子メールで開発者に送信されました。以前、2017年に質問があったときに回答しました。権限セットの内容を取得し、新しい権限を設定する必要があります。この変更は、ロック解除されたパッケージに関する権限セットの管理を容易にするために行われました。古い動作が必要な場合は、APIバージョン39.0以下を使用してください。これは、新しい動作を予測するためにコード/ロジックを更新する際の一時的な解決策として意図されています。