2016-03-22 8 views
1

Ich habe die Klasse AxaptaUserManager in der Methode currentUserId() bearbeitet.So geben Sie ein Array oder einen Container in der Klassenmethode zurück

Mein editierten Code:

public static str currentUserId() 
{ 
    str userSingle; 
    ; 

    userSingle = 'azn03'; 

    return userSingle; 
} 

I-Verfahren setzen die oben für Bereich in meiner Anfrage:

Exportfile for AOT version 1.0 or later 
Formatversion: 1 

***Element: QUE 

; Microsoft Dynamics AX Query: ABU_HCMWorker03 unloaded 
; -------------------------------------------------------------------------- 
VERSION 31 

QUERY #ABU_HCMWorker03 
PROPERTIES 
    Name    #ABU_HCMWorker03 
    Version    #29 
    NextUniqueId  #1003 
    Origin    #{DC53FD0D-7322-447E-8393-3FCA091A6CE1} 
ENDPROPERTIES 

METHODS 
SOURCE #classDeclaration 
    #public class QueryRun extends ObjectRun 
    #{ 
    #} 
ENDSOURCE 
ENDMETHODS 
BLOCKS 
BLOCK #HcmWorker 
    PROPERTIES 
    Name    #HcmWorker_1 
    Table    #HcmWorker 
    UniqueId   #1000 
    FetchMode   #1:1 
    ENDPROPERTIES 

    FIELDLIST 
    PROPERTIES 
     Dynamic    #Unselected 
    ENDPROPERTIES 

    ENDFIELDLIST 
    SORTING 
    ENDSORTING 
    LINES 
    ENDLINES 
    BLOCKS 
    BLOCK #DirPerson 
     PROPERTIES 
     Name    #DirPerson_1 
     Table    #DirPerson 
     UniqueId   #1001 
     FetchMode   #1:1 
     Relations   #Yes 
     ENDPROPERTIES 

     FIELDLIST 
     PROPERTIES 
     ENDPROPERTIES 

     ENDFIELDLIST 
     SORTING 
     ENDSORTING 
     LINES 
     ENDLINES 
     BLOCKS 
     BLOCK #DirPersonUser 
      PROPERTIES 
      Name    #DirPersonUser_1 
      Table    #DirPersonUser 
      UniqueId   #1002 
      FetchMode   #1:1 
      Relations   #Yes 
      ENDPROPERTIES 

      FIELDLIST 
      PROPERTIES 
       Dynamic    #Unselected 
      ENDPROPERTIES 

      ENDFIELDLIST 
      SORTING 
      ENDSORTING 
      LINES 
      LINE #User 
      PROPERTIES 
       Name    #User 
       Table    #DirPersonUser 
       Field    #User 
       Value    #(currentUserId()) 
      ENDPROPERTIES 

      ENDLINES 
      BLOCKS 
      ENDBLOCKS 
      ASSOCIATIONS 
      ASSOCIATION 
       FOREIGNKEYRELATION #DirPerson 
      ENDASSOCIATIONS 
     ENDBLOCK 
     ENDBLOCKS 
     ASSOCIATIONS 
     ASSOCIATION 
      FOREIGNKEYRELATION #DirPerson 
     ENDASSOCIATIONS 
    ENDBLOCK 
    ENDBLOCKS 
    GROUPBY 
    ENDGROUPBY 
    HAVING 
    ENDHAVING 
    ORDERBY 
    ENDORDERBY 
ENDBLOCK 
ENDBLOCKS 
DEPENDENTS 
ENDDEPENDENTS 
COMPOSITEQUERIES 
ENDCOMPOSITEQUERIES 
ENDQUERY 


***Element: END 

Dann erstellen i Politik, die Abfrage und die Rolle verbinden:

Policy

Last, ich füge einen Benutzer 'TradeSalesRepresentative' hinzu.

Das Ergebnis ist nicht wie erwartet, in der Form SalesTable zeigt alle Kundenaufträge von allen Verkäufern. Mein Zweck ist Filterauftrag im SalesTable-Formular. Ist irgendetwas in meinem Schritt falsch?

+0

Vielleicht können Sie die Codeänderungen vermeiden, um Ihre Tests durchzuführen, und den Befehl [runas.exe] (http://axandhellisfunaferall.blogspot.com.es/2012/07/command-line-runas-with-ax) verwenden. html). Das [Security Development Tool] (https://technet.microsoft.com/en-us/library/hh859729.aspx) ist auch eine gute Möglichkeit, Ihre Sicherheitsänderungen zu testen. –

+0

Ich weiß nicht, wie man Security Development Tools benutzt. Der Befehl runas.exe führte ebenfalls zu unerwarteten Ergebnissen. – Setiaji

Antwort

2

Setzen Sie diese Methode;

public static str currentUserId() 
{ 
    return 'azn03'; 
} 

... in die Klasse SysQueryRangeUtil.

Um einen Bereich zurückzugeben/zu filtern, formatieren Sie die Zeichenfolge so, als würden Sie den Filter manuell durch Komma trennen.

+0

Aus diesem Grund wird dies den Zweck der 'currentUserId' Methode vereiteln! Achten Sie darauf, es nach der Verwendung zu löschen. –

+0

Sicher, nahm nur die Methode aus dem Beispiel, der wichtige Teil ist wo Abfrage-Hilfsmethoden zu finden - aber Ihre Bearbeitung machte es wie meine Absichten, wo anders. – AnthonyBlake