|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
在集成环境中,NX和Teamcenter的集成中,获取当前用户的组group 和角色 role。
! i0 f5 |% a4 S% }' g* R, g
Y! [8 d/ i2 h- #include <stdio.h>
- T! T9 f r9 o! W1 K% `! |- c! f2 Z - #include <string.h>: E, W0 ~& v$ R" w$ u. q
- #include <uf.h>! p9 Y7 n: F8 U J, U
- #include <uf_ui.h>4 v f- ]& P7 F1 D4 |4 J! q! o
- : w1 {* V& h: d5 F! C% D6 }
- #include <NXOpen/NXException.hxx>
. T, b6 T- X0 g9 I/ e* ?& g - #include <NXOpen/Session.hxx>
5 V2 F. d L Z( o0 o - #include <NXOpen/ListingWindow.hxx>
* N5 Q4 p7 w3 g- }# I+ D - #include <NXOpen/LogFile.hxx>7 H$ p ~& h8 e9 i
- #include <NXOpen/PDM_SessionSettings.hxx>
h- Q7 P' u* f( [- s9 P9 w: v0 ^ - #include <NXOpen/Part.hxx>5 K c: e) A6 X: z, U! Y+ }, E
- #include <NXOpen/ParTCollection.hxx>6 _+ X7 E% s" `" q, e
- #include <NXOpen/Session.hxx>/ h9 ]1 n7 C- a3 H( S( _+ `
- " A# B% m( v, K: X) G/ A: L, `' |
- using namespace NXOpen; // <== Very Important!$ w. F/ ]5 `3 C% k7 @0 ]/ Z
5 b( Z: w$ n; s7 r2 o# z* x% K- #include <stdarg.h>" T' g( P7 p( z, |0 V4 k$ R
- # y o/ s, J+ c/ T1 H6 Q
- static void ECHO(char *format, ...)+ j: \- n% x) F; S
- {
* o, l; R" a- Q0 n3 F4 m$ R4 t - char msg[UF_UI_MAX_STRING_LEN+1];& W2 h2 _( h, k0 G5 a4 R) E
- va_list args;. ^' ?6 ^: {3 A8 v( q# E
- va_start(args, format);9 p* p; `0 R e+ e" A# F. E
- vsprintf(msg, format, args);
% J$ g3 w; h! u( M: U: s, o% x - va_end(args);
' R* T8 h, R0 l- d/ L. a - UF_UI_open_listing_window();" y; ~4 h' j* x+ M* s
- UF_UI_write_listing_window(msg);8 Y% `% e8 E7 A4 N. |6 B' g
- UF_print_syslog(msg, FALSE);
1 q$ J2 L( G4 b* O$ a - }' j2 J/ k; z/ _
- R/ a% @( @! V O/ p" @" p$ k5 j
- #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))7 @+ @' S( ~' a
- ; Z2 }: V, _1 C' H
- static int report_error( char *file, int line, char *call, int irc)# w4 u% J" R2 A o* M9 g, T4 E
- {
. {+ `0 ?3 D' T3 d1 j; h - if (irc)
- o& z( ^5 L* W ^. n - { p$ o# j' Y4 ]; J. U7 T- ^
- char err[133];- t2 f. T0 Q S/ w) r0 ~0 P0 n/ q
) p# b) C% C8 ?5 } Y3 f/ V- ~# z- UF_get_fail_message(irc, err);
0 A1 C A* ~3 H2 d - ECHO("*** ERROR code %d at line %d in %s:\n",
' \: }$ o: S- s( N. r - irc, line, file);
; Z F% x# p1 W3 W8 i; Y - ECHO("+++ %s\n", err);1 n- A$ i! d! g" { Z( k k6 F8 P
- ECHO("%s;\n", call);1 `9 m: C3 n) E/ U/ f# [
- }
# m% E& }+ W0 y$ u( a1 V
3 i g, O5 y+ s- return(irc);0 H+ V9 Q4 r* O# S7 i
- }
/ q9 [# S, Y+ s$ H5 s/ q& E
) F& t0 K' n% E. V; I$ U) T- ' o6 R' h) \- y3 r8 `% T' Q
- static void do_it(void)
( q5 q$ _: C" C+ w - {5 N, a' Z* m! p/ x6 `
- Session *theSession = Session::GetSession();
; }5 y7 i7 ]& O! R3 F3 ]+ D* r - Part *workPart(theSession->Parts()->Work());
7 l5 K; |' p4 B: }: S - Part *displayPart(theSession->Parts()->Display());
' n: `: R6 J# A) }1 q - 9 b7 Z( z w, L. X- L' Y
- PDM::SessionSettings *sessionSettings1;0 @$ w8 x& X8 H9 u0 c
- sessionSettings1 = theSession->NewDatabaseSessionOptions();% C m, S7 B. F9 @6 ^8 f
- Z% e1 ?4 {! @
- NXString CurrentGroup;
* J8 S# v, K! R" t - CurrentGroup = sessionSettings1->Group();
2 }9 E4 T- n- L: ~! M8 I -
5 o7 P& B$ b1 d+ J - NXString CurrentRole;* R0 E0 k) J, k: e; }( Y
- CurrentRole = sessionSettings1->Role();3 I1 U, W4 n' d$ {
4 K0 K3 Z) a! F- `; ^- theSession->ListingWindow()->Open();
% P* v& |0 G3 @; q9 ?, {$ l. f -
' j6 p, i1 \, Y$ V- a' x& F - theSession->ListingWindow()->WriteLine("Current Group: ");
0 Q( j8 s5 l% g3 U7 q - theSession->ListingWindow()->WriteLine(CurrentGroup);1 F, P( z6 {! Y9 q8 R
-
/ T& D# p1 v) u& \1 a - theSession->ListingWindow()->WriteLine("Current Role: ");
. ]" V) O3 ^( s- T' V, \) ` - theSession->ListingWindow()->WriteLine(CurrentRole);
' m3 h0 e2 D. D, |$ Q5 d - 3 ?% D2 q6 ]3 ]6 D
- }- ]& c$ M# H C0 q1 q
- 0 K) i2 H/ G, C4 S/ W0 g
- /*ARGSUSED*/
' Q' E- ^, s- \ - void ufusr(char *param, int *retcode, int paramLen); v# f$ l, E& l
- {- ~! n& ]9 w g9 u+ Y! u
- if (UF_CALL(UF_initialize())) return;
: n( Y; Z* ?2 `/ k - do_it();6 y9 X7 J2 I1 ~
- UF_terminate();- A7 j+ B3 e/ j: C4 c) _8 M
- }' p- R( t7 V' D1 c
- , B" P N# O1 ]1 I# G
- int ufusr_ask_unload(void)
* k8 y/ F" v4 e2 W - {
" h4 m. m* k' P* ? - return (UF_UNLOAD_IMMEDIATELY);
) v8 b* o. Z7 U6 ?1 R& Y5 i - }
5 W$ R @* z! P. b+ I- v
复制代码 |
|