(Sap BO user list exctraction with Restful Web Service)
Sap Business Objects ortamında kullanıcı listesi ResftFul Web Service SDK (Python dilinde) almak için aşağıdaki kod kullanılabilir.
#!/usr/bin/python # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') import requests, json, re baseurl = 'http://hostname_ip:port/biprws' # change hostname ip port, example: 192.168.56.101:6405 headerJson = {'accept': 'application/json'} r = requests.get(baseurl+'/logon/long', headers=headerJson) headerJson2 = {'accept': 'application/json', 'content-type': 'application/json'} postDataJson = '{"userName":"Administrator","password":"PassWD","auth":"secEnterprise"}' # change password r = requests.post(baseurl+'/logon/long', headers=headerJson2, data=postDataJson) sapBoLogonToken = '"' + json.loads(r.text)['logonToken'] + '"' headerJson3 = {'accept': 'application/json', 'X-SAP-LogonToken': sapBoLogonToken} looperPage = 1 looperPageSize = 50 r = requests.get(baseurl+'/v1/users?page='+str(looperPage)+'&pagesize='+str(looperPageSize), headers=headerJson3) parsedJson = json.loads(r.text) userList = [] while len(parsedJson["entries"]) == looperPageSize: userList.extend( parsedJson["entries"] ) looperPage += 1 r = requests.get(baseurl+'/v1/users?page='+str(looperPage)+'&pagesize='+str(looperPageSize), headers=headerJson3) parsedJson = json.loads(r.text) # rest log off headerJson4 = {'accept': 'application/json', 'content-type': 'application/json', 'X-SAP-LogonToken': sapBoLogonToken} r = requests.post(baseurl+'/logoff', headers=headerJson4) f = open('./user_list.csv','w') f.write("user_id,user_name,user_fullname\n") for uli in userList: f.write(uli["id"]+","+uli["name"]+","+uli["fullname"]+"\n") """ # maybe needed for some users detection f.write("user_id,user_name,user_name_length,user_fullname,user_fullname_length,reg_exp_flag\n") for uli in userList: if ( len(re.findall("[a-zA-Z]{2}[0-9]{4}",uli["name"])) > 0 ): reg_exp_flag = "1" else: reg_exp_flag = "0" f.write(uli["id"]+","+uli["name"]+","+str(len(uli["name"]))+","+uli["fullname"]+","+str(len(uli["fullname"]))+","+reg_exp_flag+"\n") # reg_exp_flag=1, user_fullname_length<>0, user_name_length=6 """ f.close()
Dosya olarak indirmek için: re_cmc_user_list.py