Salesforce-Metadaten-API: Beim Aktualisieren von FieldPermissions in PermissionSet werden andere FieldPermissions in anderen Objekten zurückgesetzt
Wenn ich in Metadata API Version 50.0 FieldPermissions auf einem PermissionSet aktualisiere, werden die anderen FieldPermissions auf demselben PermissionSet zurückgesetzt.
Der Aufruf von updateMetatdata funktionierte in Version 30.0 ordnungsgemäß. Ich bin mir nicht sicher, in welcher Version sich das Verhalten geändert hat.
<?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>
Vermisse ich etwas
Antworten
Dies änderte sich in Version 40.0 und wurde anscheinend per E-Mail an Entwickler gesendet. Ich habe dies bereits 2017 beantwortet, als wir eine Frage dazu hatten . Sie müssen den Inhalt eines Berechtigungssatzes abrufen und neue Berechtigungen festlegen. Diese Änderung wurde vorgenommen, um die Verwaltung von Berechtigungssätzen für nicht gesperrte Pakete zu vereinfachen. Wenn Sie das alte Verhalten möchten, verwenden Sie API-Version 39.0 oder niedriger. Dies ist als Notlösung gedacht, während Sie Ihren Code / Ihre Logik aktualisieren, um das neue Verhalten zu antizipieren.