|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/ C* t9 ^ |3 C1 P7 X. cTeamcenter ITK二次开发源码分享: 创建一个工作流
; q8 _; H) [/ ]/ k5 I* z. `, ~6 G5 W4 U5 ]' ^7 Q% j7 {
- /*HEAD CREATE_A_PROCESS CCC ITK */
0 X8 y! R; `, M3 l& c/ A- H - #include <stdlib.h>) C% B5 e0 M5 k& u
- #include <TCcore/aom.h>% Y$ O7 }" D4 z5 v4 A
- #include <tc/emh.h>! f9 i1 a9 H1 o6 U% I
- #include <epm/epm.h>
2 S* X' \/ r, j& k# E. h- F - #include <tc/tc.h>. w" o8 `8 P" w' Y/ r5 B
- #include <sa/tcfile.h>
$ d- a& ~% j9 Y" f+ {0 P. |, f! ? - #include <itk/mem.h>
: e! V2 ~/ o5 p3 ? - ; }" w2 g& p0 n( ^& {9 f. q5 F
- #define EXIT_FAILURE 1 8 Z' H! R- Q9 w& I! ^
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))). ~, W- e1 C7 O- i/ \
- static void report_error( char *file, int line, char *function, int return_code)
( k. E6 k y2 f - {( }$ ]2 C' A2 N5 M# s
- if (return_code != ITK_ok)
2 y" V+ P) Z3 i$ I - {
1 \. ~4 E" o! a6 ^8 Z3 Y - char *error_message_string;" x2 e, W3 u+ \* J
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);0 F5 K2 T& I# i/ J3 Y
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
" f0 B0 V3 J5 k0 }1 A+ ~. k- y - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);6 w: i1 g. A; R
- if(error_message_string) MEM_free(error_message_string);4 a; V0 j, b& ]7 F, ?, ^: }8 k% v q
- printf("\nExiting program!\n");, N1 ^" E5 y/ j, |1 O8 N/ ]
- exit (EXIT_FAILURE);
: C$ h3 ^( X7 l - }
. w+ T3 l1 ^- \7 R8 y i1 I+ }- l: u - } O) w2 s- n2 D: t
' z4 a* U: c! u* U. `- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
$ R% s- ?9 h% ~- ?5 } - static void check_value( char *function, int value )
5 a o, Y8 y+ v3 r4 A - {1 _: t- J. o$ I8 ?
- if (value == 0)
j% W( }8 Z; M' }' O$ g - {; o& d$ M$ u9 l8 }
- printf ("\t%s is NULL\n", function);5 U1 z$ m- R! L, t8 u; P
- printf("\nExiting program!\n");. X) T) `- n3 ]7 H% v) j
- exit (EXIT_FAILURE);
# y: m6 U9 E! t) b - }
2 u9 u5 r4 c+ y3 L- o' ? - }& j' W! P. b, | g
- ' Z$ m( m6 D. ^' {
- : v" I! C' a& n; t+ m* ~. s9 l" @
- static void do_it(void)0 s6 @( a2 J/ \; ~9 Q+ t
- {
/ ~) o, s$ S3 U5 J$ C - int 8 d1 x6 k7 f* j3 S" g- }
- attach_types[1] = {1};4 W- j( m0 J/ o" c; J% ~
- tag_t ( N( x; J6 z( C% P$ W0 \# @
- rev = NULLTAG,
, v) o+ q' E3 O0 a0 r# A# } - process_template = NULLTAG,
0 w. P+ p! ?' o& |1 J6 x - process = NULLTAG;- \6 s' B2 j% k
- 1 V' z% l1 W% v9 `
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );9 W0 W8 ~# H! @1 Q$ `4 `9 u
- EXIT_IF_NULL( rev );
6 k; J/ ~- z# z( C- p
- T/ l& R+ t7 T: l7 l. I- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 p' K8 G- Y+ |7 \3 v U
- EXIT_IF_NULL( process_template );
) e) c5 o% O! h' _& C - - l- p* y6 o* U9 g9 w9 n
- : e9 R( y1 R8 V% ~' w
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
# ]& m3 O! _# u5 @7 n - attach_types, &process) );2 `/ c9 l- a* U% L6 x4 F( h/ @
- ( W* v) Q% [% I0 u
- EXIT_IF_NULL( process );& W( E7 ]) e/ o+ m
- }
- l7 |3 W) g' Y) x+ w2 Y3 D - . {0 q' t/ \. V9 g% D
- int ITK_user_main(int argc, char* argv[])
8 L: z% O3 b" M. D. u& S+ B. S - {
; U/ W/ F# o! V1 {, ^: X$ G; } - int* t$ ]% e7 e' \/ `: Y
- status = 0;
$ d6 p* f! D ?4 ]# ` _7 \9 h - ' l, R- _% j4 x+ B: ?2 L* B
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
/ S3 b: h" Z5 U3 M& M - status = ITK_auto_login();
& h) I0 ?' k4 |0 \ -
: S/ j1 r, h5 T9 y - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");0 g3 B7 [* e1 i, Q& ?/ t5 l
- else7 Q6 }4 d" G2 U
- {
, G* d1 n4 ?3 x - printf("\nLogin successful!\n\n");
$ ?$ H3 ^5 Z# P2 M - ITK_set_journalling(TRUE); E+ \- K! y& a- u- k3 n: F
- do_it();
- x7 C3 I4 N/ e" Z5 O) c - }. K7 L& f b" a1 k3 @1 D! r$ [) d3 c' `
- ITK_exit_module(TRUE);' Q) s; `/ ]5 J4 a. S
- return status;6 I; `3 V' s; h( r) K& X
- }
复制代码 * L' U1 P! ?8 E; z5 y6 ?
; U0 @% H' H5 r8 i) {2 q6 ^% p$ @6 E) r! |- f% H( p; Q
|
|