PLM之家PLMHome-工业软件践行者

Teamcenter二次开发源码分享: 报告用户登录信息

[复制链接]

2017-11-20 13:49:47 3117 0

admin 发表于 2017-11-20 13:49:47 |阅读模式

admin 楼主

2017-11-20 13:49:47

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
Teamcenter二次开发源码分享: 报告用户登录信息
+ V' d! R. E( Q% z) V% I
8 |) A5 r7 p3 D/ [

0 d) q, k$ [, a3 x2 K. rTeamcenter c++ 方式:& u# ^+ R( P! F$ Y1 H

, M$ q. K) L, u  W
6 B$ L. v0 c8 U* `
#include <iostream>( Z6 p$ i0 n8 s) H& _3 {& n" N8 y& Z
#include <sa/group.h>  h5 F1 W3 j$ _
#include <sa/user.h>
* u7 }* P5 |* D, S& U#include <TC/LoggedInUser.hxx>! I5 |2 g8 ?. C7 I6 `0 W
  g  [8 E3 d5 z/ C

1 _( i( \* P' Y/ k/ Dusing namespace Teamcenter;. Z8 z' H; a; ?' K' Z
using namespace Core;9 [4 k5 J5 }. H2 R1 t) @
using namespace std;! q* H+ ^: s, F) p2 G. J
3 t; u8 w+ l4 y$ g1 y$ W; b

* c+ I5 A2 W& `  G; sstatic void reportCurrentLoginInfomation()7 f& |, P$ W/ j" k0 s: p9 C1 f
{
0 ?# X" @( R! R0 e, g    int ifail = ITK_ok;
/ H9 J" _8 A. \+ v    LoggedInUser* loggedInUser = LoggedInUser::getInstance();
! S% N8 F3 e; F   
0 s1 |% s0 n8 ]* U6 o* ~( Z1 Z% L    tag_t currentUserTag = loggedInUser->getCurrentUserTag();9 {* W  d0 j9 o$ _! Z9 d, S
    cout << "    currentUserTag: " << currentUserTag << endl;1 W( y/ r7 |  K
   
+ {) x! _/ F5 }2 v6 M    char *personName = NULL;
, c9 g& x: L7 S+ S0 \+ ]% o3 \2 b( l    IFERR_ABORT(SA_ask_user_person_name2(currentUserTag, &personName));$ p  a( y5 Q5 d* d# Z- y4 c
    cout << "    personName: " << personName << endl;
* F+ K9 P0 l8 u1 X. n2 w: }) V    if(personName) MEM_free(personName);  Z/ @+ f  U4 v$ |* j1 ]6 B
    ! K- [( W$ A# }9 c
    const char* userID = loggedInUser->getCurrentUserID();4 `: s7 M8 n: i& k& ], O
    cout << "    userID: " << userID << endl;3 @% t7 c+ I- m7 x5 y2 b4 r
3 |3 i, l- O9 C( U
! R* ~1 X8 ?) [2 ~
    tag_t currentGroupTag = loggedInUser->getCurrentGroupTag();) r+ A& u- ]* K% E9 F5 _9 f
   
! C. x6 @7 w. J: V1 Z$ H    char *groupName = NULL;
# n; I# D& N( B' o7 S! M    IFERR_ABORT(SA_ask_group_name2(currentGroupTag, &groupName));
$ S; W& C7 k, g$ E6 b    cout << "    groupName: " << groupName << endl;
' |! c- a) W9 s  h% Q    if(groupName) MEM_free(groupName);( E% b8 a7 g/ R8 k4 V
/ V# I- U/ l8 P/ z( R# M

) c* m3 P  C3 x" b& G! q+ e. d9 K    tag_t currentRoleTag = loggedInUser->getCurrentRoleTag();
+ W* A5 a. Z: A4 g. p' u8 F    char *roleName = NULL;6 l, i# ?: Y; B2 q
    IFERR_REPORT(SA_ask_role_name2(currentRoleTag, &roleName));
, a2 u5 b1 v$ H2 ?' ^) M7 B# e    cout << "    roleName: " << roleName << endl;% _/ s& v# \5 ]7 \  [  w
    if(roleName) MEM_free(roleName);
8 |& L" q: r3 x' E9 o: k/ B    9 M; m4 [9 h% @) c! y
    logical isDba = loggedInUser->isUserSystemAdministrator();
8 R" x/ p7 _' m# t% g, L    if(isDba == TRUE) cout << "    User is dba member "<< endl;
" z/ E4 v& Z0 W5 Y" E' O    if(isDba == FALSE) cout << "    User is not dba member "<< endl;      
# @8 s: X. K; i  c' X}
" j( O+ a8 W4 R
3 q# p* S- s. Q" x9 ~  t1 s6 |3 |( `1 g, _
, t" M: Q4 P) o
: u; X1 R( H2 j0 W6 n
3 ~* J3 r2 G8 ^/ L4 H) N
Teamcenter ITK 方式:
; Z& O% Y" x4 q. [: \
. w# w9 v" A2 K% F

; }8 w6 Y% g0 Y  D1 G7 `3 N) S/*HEAD REPORT_CURRENT_LOGIN_INFOMATION CCC ITK */( c- I! V; q/ Q8 ?! \' ~! S0 M' U
static void report_current_login_infomation()% y6 j& h/ H! ^/ c1 {) f+ u
{' u: j2 [0 E3 G9 }- ~5 a
    tag_t
+ t4 y" X" |2 j        current_member = NULLTAG, 7 ]* C+ T9 |8 ~# R+ A5 r) ?
        current_user = NULLTAG,
+ b: u8 R5 {4 T  O+ D: {        current_group = NULLTAG,  
+ d3 C1 T; N2 D+ A3 }        current_role = NULLTAG;7 N  ?. v) l1 K3 r
    char 6 o( K; X  n3 ~2 e! X! ^( O% a
        person_name[SA_person_name_size_c+1] = "",  N5 B' @6 X$ ?
        user_id[SA_user_size_c+1] = "",  ; q& W* z5 u  }9 w. t5 P
        group_name[SA_name_size_c+1] = "",
6 m( z: N$ ?5 H+ L' d        role_name[SA_name_size_c+1] = "";  
2 l# ^! m/ f3 }7 L# b  D( j6 V7 {7 i

0 q/ H/ C: ^0 o% C3 d0 {, N2 D0 E    IFERR_ABORT(SA_ask_current_groupmember(&current_member));* ]( }; T+ X8 ?$ c" M% A& r
    IFERR_REPORT(SA_ask_groupmember_user(current_member, &current_user));# f" G" }# c6 x2 w; r' \
   IFERR_REPORT(SA_ask_groupmember_group(current_member, &current_group));
$ Q7 Y) Z0 ?, u7 J    IFERR_REPORT(SA_ask_groupmember_role(current_member, &current_role));
9 y2 }: u3 I# Y( M6 O. t
! C4 h' u; x0 W( G8 G; ^7 k& Q7 P

; N9 b3 t7 C3 r7 t    IFERR_REPORT(SA_ask_user_person_name(current_user, person_name));
" ^% a% J: A5 y; V: b0 u- e8 w, T    IFERR_REPORT(SA_ask_user_identifier(current_user, user_id));) w& D6 W" w1 o4 _
    IFERR_REPORT(SA_ask_group_name(current_group, group_name));
& \5 |7 H  G* A  L2 }" r6 p4 ^; }. L    IFERR_REPORT(SA_ask_role_name(current_role, role_name));% v7 T0 c5 ]4 S" D$ a

8 c) ^  O* Y/ p# r0 \! K
3 C6 a, s( J% X5 D' Z
    ECHO("\n        Person: %s\n", person_name);
9 P; P% t/ w4 |! L    ECHO("       User ID: %s\n", user_id);
( F0 j, i: n& M: {' E    ECHO("         Group: %s\n", group_name);
* V* b3 @7 x3 m. Y    ECHO("          Role: %s\n", role_name);
3 E, J1 }- k7 Y/ ~}
: ~7 t3 f# I: |% ~2 Y
! y% z! U8 V4 Y( o
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了