Liste aller Benutzer des SAP Systems Deutsch

From Theobald Software

Jump to: navigation, search

English Version: Receiving a list of all users


Dieses Beispiel ermittelt die Benutzernamen sowie die Adressdaten aller Benutzer im SAP System. Basis für dieses Beispiel ist der Funktionsbaustein BAPI_HELPVALUES_GET.

Es besteht die Möglichkeit, die Nachnamen mittels Selection Parametern zu filtern, da der Funktionsbaustein BAPI_HELPVALUES_GET eine Import Tabelle (SELECTION_FOR_HELPVALUES) besitzt, die es erlaubt, Selection Parameter zu definieren.

static ArrayList getUserList(string sign, string option, string low, string high)
        { 
 
            ERPConnect.LIC.SetLic("xxxxxxxxxxxxx");
 
            R3Connection con = new R3Connection("hamlet",
                                                11,
                                                "user",
                                                "passw",
                                                "DE",
                                                "800");            
 
            con.Open();            
 
            RFCFunction func = con.CreateFunction("BAPI_HELPVALUES_GET");
 
            func.Exports["OBJTYPE"].ParamValue = "USER";
            func.Exports["METHOD"].ParamValue = "GETDETAIL";
            func.Exports["PARAMETER"].ParamValue = "USERNAME";
 
            RFCStructure shlp = func.Exports["EXPLICIT_SHLP"].ToStructure();
            shlp["SHLPNAME"] = "USER_ADDR";
            shlp["SHLPTYPE"] = "SH";
 
            RFCStructure sfh = func.Tables["SELECTION_FOR_HELPVALUES"].AddRow(); ;
            sfh["SELECT_FLD"] = "MC_NAMELAS";
            sfh["SIGN"] = sign;
            sfh["OPTION"] = option;
            sfh["LOW"] = low;
            sfh["HIGH"] = high;
 
            func.Execute();
 
            con.Close();
 
            ArrayList user = new ArrayList();
            for (int i = 0; i < func.Tables["HELPVALUES"].RowCount; i++)
            {
                user.Add(func.Tables["HELPVALUES"].Rows[i, 0]);
            }
            if (user.Count == 0)
            {
                user.Add("No results matching criteria");
            }               
 
            return user;                           
        }

Für die Ausgabe der Daten ist die Konsole zwar nicht das Mittel der Wahl, aber zum veranschaulichen des Konzepts sollte sie ausreichen. Als Beispielanwendung werden nun alle Benutzer ermittelt, deren Name mit M beginnt.

static void Main(string[] args)
        {
            ArrayList users = getUserList("I","CP","M*","");
            foreach (object userdetail in users)
            {
                Console.WriteLine(userdetail);
            }
            Console.ReadLine();
        }

DeutschEnglish
Personal tools
XtractQL Provider
Xtract RS