[gelöst] Erweiterte Suche und OnLoad-Ereignis

7. Dezember 2012 17:16

Hallo,

ich verwende ein benutzerdef. Skript im Onload-Ereignis eines Formulars. Dieses sorgt dafür, dass der Wert einer Pickliste abhängig vom Inhalts eines Feldes gesetzt wird.

Bsp.: In der Entität "Produkt" wird der Produkttyp (Picklist) entsprechend der Warengruppe (Feld) gesetzt. Das funktioniert auch einwandfrei.
Nun möchte ich mittels erweiterte Suche alle Produkte des Produkttyps "Service" suchen. Es erscheinen jedoch keine Ergebnisse (obwohl definitiv Produkte mit Produkttyp "Service" vorhanden sind).

Pickliste (Produkttyp) und Feld (Warengruppe) sind beide schreibgeschützt. Die Werte werden durch einen Import ermittelt.
Erst wenn ich den Schreibschutz der Felder aufhebe, einen Datensatz öffne (OnLoad-Ereignis greift und Picklisten-Wert wird gesetzt) und diesen danach manuell speicher, ist der Produkttyp mit der erweiterten Suche erreichbar.
Es wäre jedoch recht umständlich das für jeden Datensatz durchzuführen.
Gibt es eine Möglichkeit den Wert der Picklist mittels OnLoad nicht nur zu setzen sondern gleichzeitig auch zu speichern? Sodass er quasi gleich im Datensatz "fest verankert" ist?

Vielen Dank,

LG Sarah
Zuletzt geändert von SaHo am 17. Dezember 2012 11:01, insgesamt 1-mal geändert.

Re: Erweiterte Suche und OnLoad-Ereignis

8. Dezember 2012 11:54

Hallo Sarah,

schreibgeschützte Felder werden im CRM nicht an das Recordset übergeben und damit nicht gespeichert.

Wenn du möchtest, das die Daten eines schreibgeschützten Feldes in der Datenbank gespeichert werden, muss du folgenden Befehl verwenden:

Ein Schreibgeschütztes Feld in der Datenbank speichern
Xrm.Page.getAttribute('Feldname').setSubmitMode('always')

siehe auch CRM 2011 – Hilfreiche JavaScript Codeschnippsel Version 3

Re: Erweiterte Suche und OnLoad-Ereignis

11. Dezember 2012 10:58

Hallo Michael, vielen Dank für die schnelle Antwort.

Leider konnte ich mein Problem dadurch nicht vollständig lösen.
Da alle Felder bei unserer Produkt-Entität schreibgeschützt sind, kam vor dem Schließen nie das Dialogfeld 'Änderungen speichern?'. Das konnte mit obigen Codeschnippsel jetzt behoben werden.
Trotzdem muss ich erst jedes Produkt einzeln öffnen und dann speichern, bevor ich auf die mit JS gesetzten Felder mittels der erweiterten Suche zugreifen kann. Für über 4000 Produkte ziemlich umständlich, vor allem weil durch den automatisierten Import laufend neue dazukommen bzw. aktualisiert werden.
Hab ich irgendwo einen Denkfehler, oder ist es auf diesem Weg einfach nicht machbar?

Merci & LG, Sarah

Re: Erweiterte Suche und OnLoad-Ereignis

12. Dezember 2012 09:49

Hallo Saah,

JavaScript wird immer nur ausgeführt, wenn ein Formular geöffnet wird, das geht gar nicht anders.
Wenn du das Feld nicht direkt beim Import füllen kannst, wäre ein Workflow oder ein PlugIn die richtige Lösung.