| 
 | 	
		
 
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册 
 
 
 
x
 
Teamcenter二次开发源码分享: 报告用户登录信息' ?; m8 r2 z8 H( } 
 
$ d+ H; X& M* p, m" j6 ?( H: c1 R! W; R 
Teamcenter c++ 方式:% \, O' J; I! |% p& A* y) |' b* H 
 
) M( S! Y8 Y) P0 F) L+ q  z  _+ b* E8 s  w$ l: X& ]! R! j 
#include <iostream> 
+ O% {( h4 _3 g# Y8 D; H8 h) a#include <sa/group.h>  A# [; g: E9 l- a 
#include <sa/user.h> 
/ v" ^) W/ s7 v1 Z: J' h; z/ F" T#include <TC/LoggedInUser.hxx>* q, X. p8 d( B* V9 G% l 
 
1 ^; d: w0 u  E% `9 R2 Q9 h- a" j9 Y4 B6 J2 H& m/ U 
using namespace Teamcenter; 
/ N$ k5 r9 J9 }using namespace Core; 
. C  [% u) E& }. ousing namespace std;+ V5 M2 x4 }& _ 
 
/ b, }. \) f; b9 v9 l1 V) W" v, C# Y6 m! B* e& f2 y, @1 C 
static void reportCurrentLoginInfomation() 
, N; l- _) `0 q3 W" H( v% ~# i) d{ 
. l7 Y" {% m) n  m    int ifail = ITK_ok;. ~" t1 n5 n( H( y* }7 Y) G* V 
    LoggedInUser* loggedInUser = LoggedInUser::getInstance(); 
2 H: r9 t2 P0 [: R2 `0 h     
9 N; r- M& t1 W$ u4 E! D    tag_t currentUserTag = loggedInUser->getCurrentUserTag();% |  B9 y6 [; K5 F" [  u" U 
    cout << "    currentUserTag: " << currentUserTag << endl;% r* n; \- V- \1 h: }/ s( l 
    5 A4 l" A; m! ~- D6 C2 Q 
    char *personName = NULL; 
1 h' \, L% k" x; [  J    IFERR_ABORT(SA_ask_user_person_name2(currentUserTag, &personName));$ [0 d" W. s$ {, i1 ?" G- h" z( r 
    cout << "    personName: " << personName << endl;' Y3 T6 C7 O. W 
    if(personName) MEM_free(personName); 
7 l; V3 y8 \: I9 e7 R    , ?# |. a3 p* @- i 
    const char* userID = loggedInUser->getCurrentUserID();( |! T$ T; ?% }& C. a, { 
    cout << "    userID: " << userID << endl; 
* B4 d, R. Y5 n6 @3 b/ H* W2 I9 n7 @. g; M- v 
 
1 r/ b' N$ f. B+ R6 r8 _) S+ ]: F    tag_t currentGroupTag = loggedInUser->getCurrentGroupTag(); 
8 v7 |9 L4 o9 @0 y5 {    $ ]: N& c4 E8 [ 
    char *groupName = NULL; 
0 o, c4 w  l2 H$ N    IFERR_ABORT(SA_ask_group_name2(currentGroupTag, &groupName)); 
* k  H; u0 l0 L! e% q2 |    cout << "    groupName: " << groupName << endl; 
5 c" r2 O, v% o7 `6 k- L    if(groupName) MEM_free(groupName); 
1 _* s, }" r* U3 w1 A$ L  H. Q; o 
# E% f  g( J+ E4 h2 _% c8 h3 t8 n; s+ J# v" u 
    tag_t currentRoleTag = loggedInUser->getCurrentRoleTag();8 D; H0 c- j/ r1 f 
    char *roleName = NULL;1 H7 Q  `/ @' R0 H0 E0 x 
    IFERR_REPORT(SA_ask_role_name2(currentRoleTag, &roleName)); 
% D7 S! k" n! V( U( B    cout << "    roleName: " << roleName << endl; 
* J' |+ A6 ~, G( {$ T% Z    if(roleName) MEM_free(roleName);3 c% M5 a  S; }2 c 
    . |- M7 c: S% o% i8 ^, Y 
    logical isDba = loggedInUser->isUserSystemAdministrator(); 
! s: {+ }' e) c    if(isDba == TRUE) cout << "    User is dba member "<< endl; 
" X1 s' i  G# G) h. v) I/ P' F    if(isDba == FALSE) cout << "    User is not dba member "<< endl;       2 c* l! B' C5 N- `8 q/ M- `$ ^! Y$ x 
} 
# H3 u# w: ~9 {/ o8 ?' x. U3 h6 T' y/ i% ?0 X2 r% T- G! Q, ^8 A* B  ` 
; u$ g9 |7 E- _$ l/ G+ I 
 
6 g5 {/ S1 L' `7 u' v8 C4 p/ o, L% i. L9 V. p7 l" ~( T+ \ 
5 E; L7 o; X* W. r; C4 r2 p- _ 
Teamcenter ITK 方式: 
# z, U' @; `' i( l' E2 h& p# q& l; s8 @0 L7 g1 @ 
2 E) Z5 u8 h, L0 b4 A5 ?$ g; U 
/*HEAD REPORT_CURRENT_LOGIN_INFOMATION CCC ITK */ 
0 a& {# h, o1 }: ^: hstatic void report_current_login_infomation()7 A( L: c$ [3 S' M1 k 
{% v8 [! ?& i5 a; a$ n 
    tag_t : d& |+ S  L4 I, N& r& Q& L4 @3 G 
        current_member = NULLTAG, 7 i$ D6 l( u$ v5 `% n/ I 
        current_user = NULLTAG,  
$ ^- c$ q5 J# i0 `; g/ Q        current_group = NULLTAG,  " D& A# d8 X) ]: r: T$ F 
        current_role = NULLTAG;+ R9 P" W6 E! P1 i9 P 
    char  
8 C* v6 p1 W8 w! @# g        person_name[SA_person_name_size_c+1] = "", 
6 f0 `0 q6 \4 w" Q        user_id[SA_user_size_c+1] = "",  3 |& ~5 _& r; g. F/ R 
        group_name[SA_name_size_c+1] = "",9 c2 M+ c/ p; ?* I# i 
        role_name[SA_name_size_c+1] = "";   
. K9 m+ b2 m3 K6 H, m 
9 t" n$ T: G; x0 V+ m% t! | 
! R/ P1 h( Z( w. H; Q4 h    IFERR_ABORT(SA_ask_current_groupmember(¤t_member));/ \$ _! f+ Z8 b0 r: Z; D/ [/ s3 O7 q 
    IFERR_REPORT(SA_ask_groupmember_user(current_member, ¤t_user));( e/ @* H" @% V# p/ ~ 
   IFERR_REPORT(SA_ask_groupmember_group(current_member, ¤t_group));7 \! f" P- Q' i! g 
    IFERR_REPORT(SA_ask_groupmember_role(current_member, ¤t_role)); 
: q  W3 y" W+ O& M& R1 L, T 
1 X7 ]! e" G3 }* T0 Z/ k% q0 M& \! m" V6 _2 _; }! G1 I4 w: A0 ^ 
    IFERR_REPORT(SA_ask_user_person_name(current_user, person_name));) {3 j, Z$ Z; ?& ^. r+ g 
    IFERR_REPORT(SA_ask_user_identifier(current_user, user_id));( T1 d& n- }. }# o9 I0 e7 A 
    IFERR_REPORT(SA_ask_group_name(current_group, group_name));$ t, Z8 _. R0 z 
    IFERR_REPORT(SA_ask_role_name(current_role, role_name));7 K* E# t( |4 y9 t: M 
 
) S0 m( u  f" h4 G/ o, r- L3 B/ x) C; A4 c6 R! Y 
    ECHO("\n        Person: %s\n", person_name); 
* G, @+ B4 I6 [+ q5 @    ECHO("       User ID: %s\n", user_id);8 b# N2 S1 |, Q3 o 
    ECHO("         Group: %s\n", group_name); 
# S; z, |: [. W' E    ECHO("          Role: %s\n", role_name);% X: X% J% y# X 
}" @( k1 g: q3 f% N9 q9 x 
9 k1 d4 y! v2 F 
 |   
 
 
 
 |