2012-07-09 14 views
5

Po przejściu do konta/kontaktu/obiektu niestandardowego mamy pokrewną listę "powiązanych treści" (jeśli zawartość jest włączona i lista pokrewna jest dodawany do układu strony)."Treść pokrewna" przechowywana w którym obiekcie/Jak tworzyć "Treść pokrewne" zapisy z Apex

Moje pytanie brzmi: czy przechowywane są te rekordy "powiązanych treści"? w którym obiekcie?

Używanie wierzchołka Jestem w stanie przesłać plik do wersji zawartości, ale nie mogę utworzyć lub znaleźć obiektu, który przechowuje informacje "powiązanych treści".

UPDATE

próbował stworzyć link, aby pokazać się w sekcji „Inne treści” na koncie, ale bez powodzenia. Wystąpił błąd "Wstawianie nie powiodło się. Pierwszy wyjątek w wierszu 0, pierwszy błąd: FIELD_INTEGRITY_EXCEPTION, Nie można utworzyć łącza dla tego typu obiektu za pośrednictwem api: [LinkedEntityId]"

Każdy pomysł?

  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'); 

** przypadek użycia **

Sprawa stosowanie jest umożliwienie użytkownikowi dołączyć prawo od zawartości stronie szczegółów obiektu na przykład powiedzieć Konto będzie mieć przycisk say Dołączyć zawartość, to przyniesie przesyłania zawartości strony, po przesłaniu (będę tworzył rekordy contentversion - dzieje się to doskonale, bez błędów), a następnie muszę powiązać przesłaną zawartość z kontem (z którego pochodzi wniosek), czyli tworzyć rekordy "powiązanych treści" (tutaj mam trudności, próbuję tworzyć rekordy contentdocumentlink, ale ich błąd się kończy).

W przypadku użycia wystarczy jedno kliknięcie, aby załączyć zawartość do konta lub możliwości, zamiast długiego bieżącego procesu, w którym użytkownik przechodzi do treści, przesyła tam najpierw, a następnie wraca do konta/opty i ponownie wyszukuje treść, a następnie dołącza ją do konto/kontakt.

+0

Czy udało Ci się rozwiązać problem? Mam taki sam scenariusz: – jonathanwiesel

+1

Witam @Chirag, udało mi się użyć twojego kodu do przekonwertowania załącznika na 'ContentVersion' i powiązania go z kontem (rodzicem załącznika). Zrobiłem to w Winter '16 org API v35. Jedną ze zmian, które wprowadziłem, było to, że nie próbowałem utworzyć ContentVersion za pomocą pola 'FirstPublishLocationId'. Dziękujemy za próbkę kodu! –

Odpowiedz

2

Jak wiadomo zawartość jest przechowywana w obiekcie ContentDocument, a łącza są przechowywane w tabeli ContentDocumentLink.

Uważam, że http://workbench.developerforce.com jest naprawdę przydatna do określenia tego rodzaju relacji.

+0

Próbowałem wstawić do tego samego obiektu CDL, ale wydaje mi się, że czegoś mi brakuje. Sprawdź oryginalny wpis, zaktualizowałem go o kod, który próbowałem. Dzięki! –

1

Zobacz ContentDocumentLink specification w docs użytkownika, LinkedEntityId oznacza:

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. 

myślę, że na podstawie tego wyjaśnienia, można tylko stworzyć ContentDocumentLink dla pól obiektów Czatujący opartych nie na regularnych zapisów sObject lub niestandardowe tarty, itp.

+0

tak, wydaje się, że to prawda :( –

+0

Nawet po włączeniu podawania gadżetu dla niestandardowego obiektu, generuje ten sam błąd.Czy ktoś ma sposób na uzyskanie pliku do utworzenia niestandardowego obiektu? – Ankuli

Powiązane problemy