|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
在集成环境中,NX和Teamcenter的集成中,获取当前用户的组group 和角色 role。 W7 V" P1 k2 z. V1 Y9 k- _
3 u& r6 R H3 j6 }
- #include <stdio.h>
1 @9 s: H% ~6 k, q8 d - #include <string.h>( v3 K! V! Z+ M# V
- #include <uf.h>
& S4 X5 \" e6 }$ {5 r. X - #include <uf_ui.h>; \. \! ]- q% |$ O
. T. b) K6 G6 K3 u( i4 p4 ~' U( _- #include <NXOpen/NXException.hxx>
0 A; ], v+ J- L6 s2 q" S7 V - #include <NXOpen/Session.hxx>
3 v, X6 X9 x2 V# V - #include <NXOpen/ListingWindow.hxx>
7 ~4 q S, ?9 U+ ?( g - #include <NXOpen/LogFile.hxx>
3 i- q0 w* @' U: X - #include <NXOpen/PDM_SessionSettings.hxx>8 x! q; b3 l8 J2 s
- #include <NXOpen/Part.hxx>
8 t6 o; R* g Z+ A- f - #include <NXOpen/ParTCollection.hxx>& {* \% L, w4 m A% y( L3 f! ~, h
- #include <NXOpen/Session.hxx>
U: M2 }- n1 [' ~ - 1 l/ `" K. X t3 |+ f% A
- using namespace NXOpen; // <== Very Important!3 t9 j/ |0 Q4 R; L7 F4 L) Y$ }& t C
) y) T0 Q: R5 ^7 G9 S# _ e- #include <stdarg.h>& M3 F) i7 l L' ^1 L+ V( F7 Z
) ?$ y5 o, Q1 }+ _, ~! A- static void ECHO(char *format, ...). ^$ U7 n# t6 f8 F
- {0 h# }1 E! E. W, I+ p8 x" U+ O8 o
- char msg[UF_UI_MAX_STRING_LEN+1];
* g) f8 z2 `4 e3 C' z5 {+ H - va_list args;0 z7 H" ~: V" g( ~$ o- |: r
- va_start(args, format);( L" s1 F* `' |. f9 j3 n
- vsprintf(msg, format, args);! {% a0 [/ s& c' |% k: y
- va_end(args);
7 [! e7 q8 o1 C - UF_UI_open_listing_window();3 B8 n; R# c9 s9 }- T- j
- UF_UI_write_listing_window(msg); Z/ Z* k! K( T; j1 v
- UF_print_syslog(msg, FALSE);$ Q$ Y2 j4 D2 |* D: Q
- }' L. Z5 X7 `$ O7 Z
6 Z6 X+ u6 l9 ? v4 c- #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
( {" K4 h" B" r6 |' x
a6 v% Z9 i1 }+ l9 p6 C- static int report_error( char *file, int line, char *call, int irc)
8 a) B' k, m8 [$ s. ~3 ~' L - {
( ?3 S) A3 s* N |4 y - if (irc)0 w2 L( O! g/ R& U5 e$ R& k
- {2 ~5 I) g, V3 @/ J! p
- char err[133];6 D" _2 s, r, C
- 8 c/ J3 W& f2 V6 ~5 ~7 a$ @
- UF_get_fail_message(irc, err);$ @$ l: U3 `% `( G/ l6 O) s
- ECHO("*** ERROR code %d at line %d in %s:\n",
# K# I+ T+ E6 J- T* R7 v" C - irc, line, file);+ t+ E4 _3 o; Q7 M# ^. l' j
- ECHO("+++ %s\n", err);
: @: [$ o/ B* p$ @0 c: O - ECHO("%s;\n", call);9 u# l! E' \) x
- }
7 @" E8 X) G- t* t
0 G2 [( ^. M v4 {' |- return(irc);* `6 G" v/ d5 g I6 U1 J B. S
- }8 }& s; e+ v) `) @! V+ Z# }
% C4 t) o7 [: _
. }0 ]% T+ `& d' e8 d0 B- static void do_it(void)3 F; |1 R4 B. {) P a
- {
, O6 ?9 z& u+ k0 `5 T4 P' l; W6 `5 J - Session *theSession = Session::GetSession();/ }1 I! T$ f3 }% _3 U, w$ @7 y
- Part *workPart(theSession->Parts()->Work());# c. m& y5 A M5 z% {" Q
- Part *displayPart(theSession->Parts()->Display());
1 i6 O7 V: o3 k; D6 L$ [5 R - 5 C6 g/ O+ ?1 ]% X( M7 J+ o* p
- PDM::SessionSettings *sessionSettings1;
( I/ R w* S/ [1 z. H! L" k( A8 J - sessionSettings1 = theSession->NewDatabaseSessionOptions();
: V( p3 p% {; k: H: o V -
4 e4 H3 @+ e% b) Z8 O - NXString CurrentGroup;7 J6 W1 ]+ k4 x
- CurrentGroup = sessionSettings1->Group();
, S7 J- b" F* j8 g9 P+ Y* F, ]+ M3 ` - 9 n- Z% V% g1 l% [. B
- NXString CurrentRole;
; Y: r7 q8 O, ?4 _2 p) ]6 i - CurrentRole = sessionSettings1->Role();. ?! I% E, Z1 D' q W# z/ v7 X
& X) O) d' C( k& L& b! C- theSession->ListingWindow()->Open();
; g# p* s/ r c -
! C8 l$ P. ~5 E) L5 N! x - theSession->ListingWindow()->WriteLine("Current Group: ");
) E3 R ~ L8 [9 O - theSession->ListingWindow()->WriteLine(CurrentGroup);' p, t7 b7 b- n! U* r9 J
- 2 R3 C+ l3 O0 e: \: f. z1 Z
- theSession->ListingWindow()->WriteLine("Current Role: "); $ X5 |& |8 u6 C) N7 e& c
- theSession->ListingWindow()->WriteLine(CurrentRole);. s9 U A7 M1 [8 s7 r% l8 U
- / ~9 B3 c. P" B6 @: p ?
- }
- `: ?3 q2 F* {$ v
( @5 V3 a' {1 c# q& \- /*ARGSUSED*/$ {% W, d. [4 D$ k6 r+ P0 i
- void ufusr(char *param, int *retcode, int paramLen) |, n% t; D5 K. `
- {$ @ `" U: }; W) K$ F& |
- if (UF_CALL(UF_initialize())) return;
, N8 y3 ^' \9 v I# |% S - do_it();
' n* d4 }9 w A* y* W4 X# t - UF_terminate();& T- ?% g: b* M; Y# ~
- }, d4 M# U: w3 X% K" K0 e8 D
7 V/ z! E, T4 m+ l- int ufusr_ask_unload(void) N0 G4 y u' x; u8 B. _8 a
- {
. p d D7 |. u7 h) ?9 f - return (UF_UNLOAD_IMMEDIATELY);
: a2 h8 r, C2 ?8 J- @8 E0 h - }2 g1 G% m1 ?! Z- K* x6 D# I
复制代码 |
|