API de metadatos de Salesforce: al actualizar FieldPermissions en PermissionSet, se restablecen otros FieldPermissions en otros objetos
En la versión 50.0 de la API de metadatos, cuando actualizo FieldPermissions en un PermissionSet, se restablecen los otros FieldPermissions en el mismo PermissionSet.
La llamada updateMetatdata funcionó correctamente en la versión 30.0. No estoy seguro de qué versión cambió el comportamiento.
<?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>
¿Me estoy perdiendo de algo?
Respuestas
Esto cambió en la versión 40.0 y aparentemente se envió a los desarrolladores por correo electrónico. Anteriormente respondí esto en 2017 cuando teníamos una pregunta al respecto . Debe recuperar el contenido de un conjunto de permisos y establecer nuevos permisos. Este cambio se realizó para facilitar la administración de conjuntos de permisos con respecto a los paquetes desbloqueados. Si desea el comportamiento anterior, use API versión 39.0 o inferior. Esto está pensado como una solución provisional mientras actualiza su código / lógica para anticipar el nuevo comportamiento.