2012-07-09 22 views
5

Si navega hasta la cuenta/contacto/objeto personalizado, tenemos una lista relacionada "contenido relacionado" (si el contenido está habilitado y la lista relacionada se agrega al diseño de la página)."Contenido relacionado" almacenado en qué objeto/Cómo crear registros de "Contenido relacionado" de Apex

Mi pregunta es: ¿se almacenan estos registros de "contenido relacionado"? ¿En qué objeto?

Uso de apex Puedo subir archivos a la versión de contenido, pero no puedo crear o encontrar el objeto que almacena la información del "contenido relacionado".

ACTUALIZACIÓN

tratado de crear un enlace a aparecer en la sección "Contenido relacionado" de la cuenta, pero sin éxito. Error "Error al insertar. Primera excepción en la fila 0; primer error: FIELD_INTEGRITY_EXCEPTION, No puede crear un enlace para este tipo de entidad a través de la API: [LinkedEntityId]"

¿Alguna idea?

  ContentVersion cv = new ContentVersion(
      versionData = EncodingUtil.Base64Decode(base64BlobValue), 
      Title = fileName, 
      PathOnClient = '/'+fileName, 
      FirstPublishLocationId = '058900000009KcL' 
     ); 
     insert cv; 

     //fetch ContentDocumentId 
     cv = [Select Id,ContentDocumentId from ContentVersion where Id = :cv.Id]; 

     insert new ContentDocumentLink(LinkedEntityId=parentId,ContentDocumentId=cv.ContentDocumentId,ShareType='V'); 

** ** Caso de Uso

El caso de uso es permitir al usuario adjuntar contenido correcto de la página de detalles de objetos para, por ejemplo decir Cuenta tendrá que decir el botón Adjuntar contenido, esto traerá la página de contenido de carga, una vez cargada (crearé registros de conversión de contenido, esto está sucediendo perfectamente, sin errores) y luego tengo que relacionar el contenido cargado con la cuenta (de la cual se originó la solicitud), es decir, crear registros de "contenido relacionado" (aquí estoy enfrentando dificultades, intentando para crear registros contentdocumentlink pero su error de salida).

El caso de uso es tan solo un clic para adjuntar contenido a la cuenta u oportunidad en lugar del proceso actual, el usuario va al contenido, carga primero y luego vuelve a la cuenta/busca contenido y luego lo adjunta a cuenta/contacto.

+0

¿Ha logrado resolver el problema? Tengo el mismo escenario – jonathanwiesel

+1

Hola @Chirag, pude usar tu código con éxito para convertir un archivo adjunto en 'ContentVersion' y relacionarlo con la cuenta (padre principal del archivo adjunto). Hice esto en Winter '16 org API v35. El único cambio que hice fue que no intenté crear ContentVersion con el campo 'FirstPublishLocationId'. Gracias por tu código de muestra! –

Respuesta

2

Como sabe, el contenido se almacena en el objeto ContentDocument y los enlaces se almacenan en la tabla ContentDocumentLink.

Encuentro que el http://workbench.developerforce.com es realmente útil para entender este tipo de relaciones.

+0

Intenté insertar en el mismo objeto CDL, pero parece que me falta algo. Verifique la publicación original, la actualicé con el código que he estado intentando. ¡Gracias! –

1

Véase el ContentDocumentLink specification en la documentación de usuario, LinkedEntityId representa:

ID of the linked object. Can include Chatter users, groups, records 
(any that support Chatter feed tracking including custom objects), 
and Salesforce CRM Content libraries. 

estoy pensando que en base a esta explicación, se puede crear la única ContentDocumentLink de campos de objetos basados ​​Chatter, no para los registros sObject regulares o sobjects personalizados, etc.

+0

sí que parece ser cierto :( –

+0

Incluso después de habilitar la alimentación de chatter para el objeto personalizado, produce el mismo error. ¿Alguien tiene forma de lograr la creación de archivos para objetos personalizados? – Ankuli

Cuestiones relacionadas