Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition

Post Reply
User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition

Post by llaprosper » 11. Mar 2022, 09:18

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.

dodic
Posts: 506
Joined: 03. Feb 2012, 10:51
Location: Salzgitter
Contact:

Re: Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition

Post by dodic » 11. Mar 2022, 14:49

Hey,wäre es hier vllt nicht einfacher mit Quick Calls zu arbeiten?

User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition

Post by llaprosper » 13. Mar 2022, 19:45

Hi, nein, ist für uns keine Alternative.

User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition

Post by llaprosper » 14. Mar 2022, 10:08

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

Image

Nun lege ich einen neuen Context an. Wenn die Anzahl der Treffer aus dem Filter > 0 ist, dann true, ansonsten false

Image

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.
Attachments
2.png
(42.71 KiB) Downloaded 376 times
1.png
(32.24 KiB) Downloaded 396 times

Steinbit
Posts: 128
Joined: 30. Nov 2017, 16:32
Contact:

Re: Eigenes CI - Verbindung CurrentUser zu Attribut aus eigener Datendefinition

Post by Steinbit » 20. Apr 2022, 15:58

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:
return mx.Data.Fragments.getList("<MyDD>?<FieldOfUserID>='" + currentUser.$value + "'&columns=<FieldOfRole> AS Role").then(function(data){
return data[0].Role;
}
Im Anschluss kannst du dir das Feld keyUserRole in deine Switch-Case Abfrage ziehen und entsprechende Kategorien zuweisen.

Post Reply

Return to “Customizing und Reporting”

Who is online

Users browsing this forum: No registered users and 3 guests