Filter auf Add Existing Button - Many to Many

29. Februar 2012 16:41

Hallo,

ich weiß, es gibt einige Themen dazu im Internet, aber ich bekomme es trotzdem nicht ans laufen.

Versucht habe ich es mit dieser Lösung:
http://danielcai.blogspot.com/2011/12/f ... on-of.html

Ich bekomme es aber nicht ans laufen. Bei mir ist die Situation auch etwas anders. Im großen gibt es 2 Unterschiede.

1. Ich arbeite mit anderen Entitäten (einer eigenen Entität Veranstaltung und der Entität Preislistenelement)
2. Ich habe keinen Subgrid auf meiner Form, sondern möchte das "normale" add Existing, welches ich bekomme, wenn links in der Navigation etwas aufgerufen wird.

Könnt ihr mir helfen?
Ich habe auch noch ein Beispiel gefunden, das ohne die Ribbon diff auskommt. Das wäre mir eigentlich lieber.

http://blogs.huddle.com.ar/sites/Dynami ... aspx?ID=14

Aber auch damit komme ich nicht zurecht. Kann mir irgendwer helfen?

Vielen dank
Pascal
Zuletzt geändert von pallinio am 2. März 2012 11:49, insgesamt 2-mal geändert.

Re: Filter auf Add Existing Button - Many to Many

1. März 2012 14:16

Hallo Pascal,

was genau möchtest du denn erreichen?

Re: Filter auf Add Existing Button - Many to Many

1. März 2012 14:23

Hallo Michael,

Ich möchte in einer Entität "Teilnehmer" die auswählbaren Preislistenelemente auf die Preisliste beschränken, die in der Veranstaltung hinterlegt wurde.
Aber unabhängig von dem Fetch, was ich dafür brauche, scheitere ich schon da dran. eine eigene Ansicht hinter den "Add Existing" Button zu packen.

wie ich geschrieben habe, habe ich aber kein Subgrid (Unterraster) auf meinem Formular, sondern nur die Beziehung über die Navigation links.

Edit: Ok, ich bin jetzt noch weiter zurück gegangen und habe den debugger aktiviert. Das Skript von Daniel Cai wird überhaupt nicht ausgeführt.
Mein Ribboindiff:
Code:
      <RibbonDiffXml>
        <CustomActions />
        <Templates>
          <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
        </Templates>
        <CommandDefinitions>
          <CommandDefinition Id="Mscrm.AddExistingRecordFromSubGridAssociated">
            <EnableRules>
              <EnableRule Id="Mscrm.AppendPrimary" />
              <EnableRule Id="Mscrm.AppendToPrimary" />
              <EnableRule Id="Mscrm.EntityFormIsEnabled" />
            </EnableRules>
            <DisplayRules>
              <DisplayRule Id="Mscrm.AddExisting" />
              <DisplayRule Id="Mscrm.ShowForManyToManyGrids" />
              <DisplayRule Id="Mscrm.AppendPrimary" />
              <DisplayRule Id="Mscrm.AppendToPrimary" />
              <DisplayRule Id="Mscrm.AppendSelected" />
              <DisplayRule Id="Mscrm.AppendToSelected" />
              <DisplayRule Id="Mscrm.CanWriteSelected" />
            </DisplayRules>
            <Actions>
              <JavaScriptFunction FunctionName="addExistingFromSubGridAccount" Library="$webresource:feev_filterexisting">
                <CrmParameter Value="SelectedEntityTypeCode" />
                <CrmParameter Value="SelectedControl" />
              </JavaScriptFunction>
            </Actions>
          </CommandDefinition>
        </CommandDefinitions>
        <RuleDefinitions>
          <TabDisplayRules />
          <DisplayRules />
          <EnableRules />
        </RuleDefinitions>
        <LocLabels />
      </RibbonDiffXml>


Und genau in diesem Moment sehe ich diese Zeile:
In CRM, create a new solution, and add account entity (the entity in the sub-grid) to the solution.

Ich Troll hab das RibbonDiffXml in der falschen Entität angepasst.

Ich melde mich wenn es geht.

Viele Grüße
Pascal

Re: Filter auf Add Existing Button - Many to Many

2. März 2012 09:34

Guten Morgen, kaum macht man es richtig, passiert auch was.

Die Lösung von Daniel Cai funktioniert.

Jetzt hab ich aber noch ein anderes Problem mit dem Fetch XML.
Wie kann ich auf die Aktuelle Entität zugreifen?

Angenommen ich bin in einer Firma und habe dort die N:M Beziehung, die ich filtern möchte. Wie greife ich auf die eigentlich geöffnete Firma zu?

Xrm.Page.data und ui sind null. getAttribute funktioniert dahier auch nicht.

Viele Grüße
Pascal

Re: Filter auf Add Existing Button - Many to Many

2. März 2012 09:42

Hallo Pascal,

wenn du eine Formular geöffnet hast kannst du immer mit
Xrm.Page.data.entity.getId();
auf die aktuelle GUID zugreifen. Dieser Wert muss gefüllt sein, aber natürlich erst, wenn der Datensatz gespeichert wurde, also nicht im create.

Re: Filter auf Add Existing Button - Many to Many

2. März 2012 09:49

Hallo Michael,

data ist aber null.
Ich befinde mich jetzt in der associated View, nicht in einem Subgrid.


Edit: Mit den Paremetern im Ribbon kommt man dahin.

Code:
PrimaryEntityTypeCode   10002   
PrimaryEntityTypeName   "new_eventsessiontime"
PrimaryItemIds                   [{80E9FAF0-8763-E111-A4F2-000C29117611}]


Hier die Doku aus dem MSDN dazu
http://msdn.microsoft.com/en-us/library/gg309332.aspx

Viele Grüße
Pascal

Re: Filter auf Add Existing Button - Many to Many

2. März 2012 11:52

Hallo,

ich muss doch noch mal ran.

Wie vorhin geschrieben funktioniert jetzt der Filter.
Wenn ich aber in einer AssociatedView bin und nicht in einem Subgrid, funktioniert diese Zeile nicht:

Code:
AssociateObjects(crmFormSubmit.crmFormSubmitObjectType.value, crmFormSubmit.crmFormSubmitId.value, params.gridTypeCode, lookupItems, IsNull(roleOrd) || roleOrd == 2, "", relName);


in diesem Fall ist crmFormSubmit null und es werden keine Objekte hinzugefügt.

Eine Idee?

Viele Grüße
Pascal