Zum Hauptinhalt gehen

FS_INDEX über FS_INDEX

Kommentare

4 Kommentare

  • Zendesk API User
    Author: hoebbel - 1/11/2023 13:38

    Hallo Thomas,

    müsste der innere FS_INDEX nicht so aufgerufen werden (in der Annahme, dass das DatasetDataAccessPlugin genutzt wird)

    $CMS_FOR(for_channel,entry.formData.<Name des inneren FS_INDEX>)$

    Wenn in dem Index keine FirstSpirit Datensätze verlinkt sind, wird es schwierig zu unterstützen, da man dann erst einmal wissen muss, was das überhaupt für Objekte sind, die das Data Access Plugin des äußeren FS_INDEX zurück liefert. Da aber innen auch ein FS_INDEX benutzt wird, gehe ich mal davon aus, dass "nur" Datensätze referenziert werden

    Viele Grüße
    Holger

    0
  • Zendesk API User
    Author: th_biedermann - 1/11/2023 13:52

    Hoi Holger

    Danke für die schnelle Antwort.

    Ich habe mal deinen Vorschlag eingebaut. Leider klappt es noch nicht.

    Ich erhalte keine Resultate aus dem zweiten FS_INDEX.

    Das ist die innere FS_INDEX

     

     

    <FS_INDEX name="cs_um_channels" height="2" useLanguages="yes"> <LANGINFOS> <LANGINFO lang="DE" label="Empfängerlisten/-segmente"/> <LANGINFO lang="*" label="Recipient lists or segments"/> </LANGINFOS> <SOURCE name="EmailMarketing/ChannelDataAccessPlugin" semtagName=""/> </FS_INDEX>

     

     

    Code auslesen

     

     

    $CMS_IF(#global.preview)$ $CMS_FOR(for_instance, cs_instances.values)$ $CMS_FOR(for_channel, for_instance.formData("cs_um_channels").values)$ $CMS_IF(for_channel.getIsVChannel())$ <vchannel>$CMS_VALUE(for_channel.channelId)$</vchannel> $CMS_ELSE$ <channel>$CMS_VALUE(for_channel.channelId)$</channel> $CMS_END_IF$ $CMS_END_FOR$ $CMS_END_FOR$ $CMS_END_IF$

     

     

    Ausgabe von $CMS_VALUE(for_instance)$

     

     

    de.espirit.firstspirit.store.access.contentstore.DatasetImpl{de.espirit.or.impl.EntityImpl@d22fae59{T_NEWSLETTER_INSTANCES,PERSISTENT,released,FS_ID=91200,FS_VALID_FROM=1673423723955,FS_VALID_TO=9223372036854775807,FS_RELEASE_TO=9223372036854775807,FS_GID=143908e3-5444-462c-9288-71879f73958b}}

     

     

    Grüsse. Thomas

    0
  • Zendesk API User
    Author: hoebbel - 1/11/2023 15:03

    Hallo Thomas,

    Du kannst im FirstSpirit Code entweder die Beanschreibweise nutzen oder die Methoden ausschreiben.

    Um das innere FS_INDEX zu bekommen, musst Du also entweder

    for_instance.formData.cs_um_channels

    oder 

    for_instance.formData.get(#global.language,"cs_um_channels").get()

    schreiben. (bei sprachunabhängigen Eingabekomponenten kannst Du auch anstelle der Sprache null benutzen)

    Und Du musst dann wieder über die values des Index iterieren (so wie außen).

    Wenn das nicht auf Anhieb klappt, lass Dir mal die Klasse von dem Objekt ausgeben, dass Du jeweils hast. (mit .getClass() oder .class) Veerinfacht gesagt brauchst Du beim inneren Index dieselbe Klasse wie beim äußeren. Sobald Du die hast, kannst Du über den entsprechenden Ausdruck.values iterieren.

    Viele Grüße
    Holger

    0
  • Zendesk API User
    Author: th_biedermann - 1/13/2023 12:59

    Hallo Holger

    Parallel habe ich noch bei PINUTS nachgefragt. Jetzt klappt es mit dem auslesen.

    $CMS_FOR(for_channel, for_instance.formData.cs_um_channels.values)$

    $-- Channel aus EmailMarketing/ChannelDataAccessPlugin lesen --$ $CMS_FOR(for_instance, cs_instances.values)$ $CMS_FOR(for_channel, for_instance.formData.cs_um_channels.values)$ $CMS_IF(for_channel.getIsVChannel())$ <vchannel>$CMS_VALUE(for_channel.channelId)$</vchannel> $CMS_ELSE$ <channel>$CMS_VALUE(for_channel.channelId)$<channel> $CMS_END_IF$ $CMS_END_FOR$ $CMS_END_FOR$

     Besten DANK für deine Hilfe und Unterstützung

    Grüsse. Thomas

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.