Hallo Zusammen,
ich versuche es auch mal über diesen Kanal
ich habe folgende Aufgabenstellung:
Ich möchte, wenn ein SAP Keyuser ein SAP Ticket eröffnet (Eigener Quicklink + eigener Dialog), dass anhand seiner vorher definierten "Rolle" (Auswählbar aus einer Pickup Liste) das Ticket automatisch eine bestimmte Kategorie bekommt.
Dazu habe ich ein eigenes CI erstellt, wo ich die Keyuser pflegen möchte.
Die DD hat nur 2 Attribute. Einmal der User (Die DD hat eine Beziehung zur UserClassBase) und einmal eine Rolle (Pickup)
Im Dialog selber sehe ich kein Problem innerhalb der Kategorie mit If,Else oder Case die richtige Kategorie zu erstellen.
Mein Problem ist, wie komme ich an die Id der Pickup-Rolle?
Dafür brauche ich ja den CurrentUser (kein Problem).
Aber wie schaue ich nach, ob der CurrentUser in meiner Datenquelle vorhanden ist und welche "Rolle" ihm zugeordnet ist.
Muss ich im Dialog einen Context erstellen?
Muss ich, nachdem ich die Source meines CI's hinzugefügt habe, den $filter anpassen?
Oder die $ID verwenden?
Und vor allem... WIE sollte der JavaScript Ausdruck dazu aussehen?
Bemerkung:
Es wäre wohl einfacher in der UserClassBase einfach die beiden Attribute hinzuzufügen, aber mir wäre ein eigenes CI lieber.
Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
Re: Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition
Hey,wäre es hier vllt nicht einfacher mit Quick Calls zu arbeiten?
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
Re: Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition
Hi, nein, ist für uns keine Alternative.
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
Re: Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition
Ich bin jetzt so weit schon mal gekommen, dass es klappen würde, wenn es nur EINE EINZIGE Rolle geben würde.
Als Source habe ich mein eigenes CI hinzugefügt. Im $filter lasse ich mir nur die Ergebnisse zurückliefern, wo der currentUser in dieser Rolle ist.
Expression-ObjectID = ID der Benutzerrolle in meinem CI bzw Datendefinition
Nun lege ich einen neuen Context an. Wenn die Anzahl der Treffer aus dem Filter > 0 ist, dann true, ansonsten false
Im Layout der Kategorie hinterlege ich:
if (userInSAPRole.$value > "0"){
return '0b48035c-cfe3-eb11-2db8-005056acfbb9';
}
return $value;
Das klappt dann soweit. Die richtige Kategorie wird eingetragen, wenn der User sich in dieser Rolle befindet.
Jetzt dachte ich mir, dass ich für jede weitere Rolle nochmals das CI als Source hinzufüge, den $filter mit einer anderen Expression-ObjectID einer anderen Rolle fülle und dafür wiederum einen eigenen Context erstelle.
Im Layout sollte es dann so aussehen:
if (userInSAPRole.$value > "0"){
return '0b48035c-cfe3-eb11-2db8-005056acfbb9';
}
if (zweiterContext.$value > "0"){
return '7929f667-cfe3-eb11-2db8-005056acfbb9';
}
return $value;
Bemerkung:
Jeder User wird immer nur EINER ROLLE zugeordnet sein
Das klappt aber leider nicht.
Mit console.log (zweiterContext.$value) sehe ich auch, dass er als Wert '0' zurückgibt, obwohl der User in der zweiten Rolle vorhanden ist.
Jemand dazu eine Idee oder eine andere Möglichkeit das abzubilden?
Mein einziges Problem hier ist ja eigentlich nur, wie bekomme ich die ID der Benutzerrolle, die dem User zugeordnet ist.
Als Source habe ich mein eigenes CI hinzugefügt. Im $filter lasse ich mir nur die Ergebnisse zurückliefern, wo der currentUser in dieser Rolle ist.
Expression-ObjectID = ID der Benutzerrolle in meinem CI bzw Datendefinition
Nun lege ich einen neuen Context an. Wenn die Anzahl der Treffer aus dem Filter > 0 ist, dann true, ansonsten false
Im Layout der Kategorie hinterlege ich:
if (userInSAPRole.$value > "0"){
return '0b48035c-cfe3-eb11-2db8-005056acfbb9';
}
return $value;
Das klappt dann soweit. Die richtige Kategorie wird eingetragen, wenn der User sich in dieser Rolle befindet.
Jetzt dachte ich mir, dass ich für jede weitere Rolle nochmals das CI als Source hinzufüge, den $filter mit einer anderen Expression-ObjectID einer anderen Rolle fülle und dafür wiederum einen eigenen Context erstelle.
Im Layout sollte es dann so aussehen:
if (userInSAPRole.$value > "0"){
return '0b48035c-cfe3-eb11-2db8-005056acfbb9';
}
if (zweiterContext.$value > "0"){
return '7929f667-cfe3-eb11-2db8-005056acfbb9';
}
return $value;
Bemerkung:
Jeder User wird immer nur EINER ROLLE zugeordnet sein
Das klappt aber leider nicht.
Mit console.log (zweiterContext.$value) sehe ich auch, dass er als Wert '0' zurückgibt, obwohl der User in der zweiten Rolle vorhanden ist.
Jemand dazu eine Idee oder eine andere Möglichkeit das abzubilden?
Mein einziges Problem hier ist ja eigentlich nur, wie bekomme ich die ID der Benutzerrolle, die dem User zugeordnet ist.
Re: Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition
Hallo Zusammen,
ein Ansatz wäre es das Problem über ein Zusatzfeld als Context Variable und mittels mx.Data zu lösen:
Neue Variable Context.keyUserRole [Type Guid]
Related Data model properties: currentUser [Watchable: False] Context.CurrentUser
Advanced Property:
ein Ansatz wäre es das Problem über ein Zusatzfeld als Context Variable und mittels mx.Data zu lösen:
Neue Variable Context.keyUserRole [Type Guid]
Related Data model properties: currentUser [Watchable: False] Context.CurrentUser
Advanced Property:
Im Anschluss kannst du dir das Feld keyUserRole in deine Switch-Case Abfrage ziehen und entsprechende Kategorien zuweisen.return mx.Data.Fragments.getList("<MyDD>?<FieldOfUserID>='" + currentUser.$value + "'&columns=<FieldOfRole> AS Role").then(function(data){
return data[0].Role;
}
Who is online
Users browsing this forum: No registered users and 3 guests