|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
3 Z8 C$ Y* }7 D% @: O; q
Teamcenter ITK二次开发源码分享: 创建一个工作流
% k* F4 @; C5 P9 B( P% s
2 e" R) Z- V5 F; z2 T( I2 [- /*HEAD CREATE_A_PROCESS CCC ITK */
k X t. K- W* j8 K! |7 } - #include <stdlib.h>
) a# b$ X y; D2 l1 N% }+ e9 r - #include <TCcore/aom.h>
1 F0 b% X( a: E" N4 L" o+ R - #include <tc/emh.h>$ ~5 D( Y7 s2 ]* p" d/ X
- #include <epm/epm.h>
+ Z+ {9 e: @0 ^$ |6 q9 e; ^$ ]4 u - #include <tc/tc.h>! y% y5 }& i6 O+ s6 r" Q' T
- #include <sa/tcfile.h>
6 \- z& u6 F, T5 P- [ - #include <itk/mem.h>* K K% N5 b" Z
$ y( V2 W. K' L% V0 n- #define EXIT_FAILURE 1 3 H8 I& R9 B& L- m, a3 }0 F c ~
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))0 r/ O6 l+ b4 I; y
- static void report_error( char *file, int line, char *function, int return_code)
$ R' ~; [9 K7 a+ x - {4 J9 j0 a m2 L5 H
- if (return_code != ITK_ok)
+ [0 B/ _2 O# V/ K - {
5 M5 x0 e, t( s. O - char *error_message_string;
9 @* p. Y5 ?% J: X6 u0 ~ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
1 ^0 {' R4 k7 ~( r - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
/ d& {7 _8 B7 l; \3 g% G ` - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
: G/ g6 M5 s e, ^ i5 h - if(error_message_string) MEM_free(error_message_string);
/ a; C$ _2 U: y9 K: R2 c0 X - printf("\nExiting program!\n");
! O5 C* I$ ^# s8 b/ u' o. u6 Q - exit (EXIT_FAILURE);
3 M- n7 P/ X% ^/ S' X0 z - }, U6 F* x/ }8 y" o" Q2 l
- }
: u( w8 k! q7 o% V' h" j - ( h8 i8 o, I6 C& t
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
0 \) y B, ?5 |: n+ u! x! S - static void check_value( char *function, int value )$ u' A! f3 J7 ]5 `9 g$ ]
- {
8 _- T" ]- X+ f$ Z7 e/ C - if (value == 0)
7 d, W* e* _. B& f; O& m. o - {
' X7 ` R. w& B' S - printf ("\t%s is NULL\n", function);
) y) r7 ^* z3 C. R" f+ e - printf("\nExiting program!\n");: G4 K' x* Z7 x: d# k: ^
- exit (EXIT_FAILURE);
9 s: [8 Y, a$ N1 u' x - }
+ Z: Y0 ^& N6 D5 s& u - }3 h6 k0 x+ H/ W8 k; M( ?
- 4 X" Q( w) O8 M
2 f4 l( w9 [8 u/ S; M7 k5 c- static void do_it(void)
" n/ j2 l; W- o {& {8 Y& \* R( a* ` - {* m5 }7 H; f( q4 M& z: y
- int 2 z$ X' i* @& q' H' C8 m' \
- attach_types[1] = {1};
" w2 w/ C+ c/ W0 q/ ^! U' z - tag_t : Y! B+ F9 X. i% b$ y
- rev = NULLTAG, ' a/ y8 j% b$ _
- process_template = NULLTAG,
' D" Q+ I$ G. x& k* u, J - process = NULLTAG;- r7 K k8 \8 |& P( H
- & |9 [* H0 R) Z4 U4 J4 z
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );# }3 y! P1 i3 D
- EXIT_IF_NULL( rev );
9 D" v$ B5 r" B L6 ?
+ s8 R: c+ p& e8 D }, c. \6 d- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); $ b+ {2 h2 }* _0 K3 ~/ ~0 B% m
- EXIT_IF_NULL( process_template );, V6 D/ S/ ]# b# A& ^6 m
- : U8 b! Q2 V" L) M
9 [- S8 y& E5 a4 R4 d- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, , Q+ W& O% l6 {
- attach_types, &process) );
j* M$ I+ g y7 R - + u& i- U( G$ e( c, U$ N8 n
- EXIT_IF_NULL( process );6 N5 q. ^& P7 p! e! _
- }
8 h: k* C9 A1 h# j, V# a
' {; D, t( X% u6 \7 }3 }- int ITK_user_main(int argc, char* argv[])
( C- Q( m4 F x. e: N7 g - {4 b# U: ^, g) I1 T/ a' j2 W
- int0 J* K$ q6 |1 U V$ R" R% _: r, v
- status = 0;
a+ J$ {' S* Z& F -
( d/ a& X o. F - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );4 C D% L+ U/ Z' G, u o$ I
- status = ITK_auto_login();7 i9 a1 E% e* K
- 7 D) W8 J1 K/ d& s6 u6 O
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
R5 Q6 ~- g8 k - else8 d" N: ^: |3 r" f
- {& U) g! l; P7 I/ r+ S0 q% r
- printf("\nLogin successful!\n\n");. I5 w' e t; b( y& O! ?! K
- ITK_set_journalling(TRUE);5 ?, ~1 a) \# |, U1 N4 M
- do_it();" x% l8 z! A0 ~( [- R
- }' C r4 O" n# ^4 h9 _
- ITK_exit_module(TRUE);8 W* ^; ~8 d. j O
- return status;6 i0 E; R7 N. W( y1 V' ^
- }
复制代码
2 j: w+ j) M0 R) r' u" Q$ `2 s
* P3 B/ ?. F$ }; t7 Z! F s9 j" A8 G8 {9 I2 k, n# q
|
|