|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% D5 B" V- ^* V! N+ KTeamcenter ITK二次开发源码分享: 创建一个工作流
) s. v! q: X+ P8 c! L6 v( T u/ L: Q) R& ?5 [. y2 F6 n
- /*HEAD CREATE_A_PROCESS CCC ITK */
3 \0 v. `9 q. O1 G - #include <stdlib.h>
0 O; I) K' l1 b8 _% h - #include <TCcore/aom.h>
) p0 n5 ?2 `8 `- i - #include <tc/emh.h>6 X, b4 U$ p4 G9 \/ x. M
- #include <epm/epm.h>
N; h2 v; j0 [. H) N, W2 \3 w - #include <tc/tc.h>7 Y l+ P- a# W
- #include <sa/tcfile.h>9 Q0 _, _0 x3 o c# x+ G
- #include <itk/mem.h>0 d/ M8 ]0 V. p/ S$ Z( R: [0 ~
- ( b9 G3 w' j& _. b. ]+ `
- #define EXIT_FAILURE 1 $ P! E: C# d e
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
, }4 W D. j3 |; e/ f - static void report_error( char *file, int line, char *function, int return_code)
! _* F" A, \4 g$ H9 h- t4 f6 _ - {
5 X. |# _! b7 e8 U* i& r5 d1 P - if (return_code != ITK_ok)
- h5 a3 n6 @/ [& W - {8 V+ h& m9 @( M$ w: {
- char *error_message_string;
8 H8 f: }4 L5 _ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);$ `7 k/ W" q2 ~" I8 U
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
5 f. V6 G3 L7 l4 x" S9 Y6 s - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
3 E& v$ V$ M+ }' Y! _6 U - if(error_message_string) MEM_free(error_message_string);# s4 A( z; s/ W, u- ^# Y6 {
- printf("\nExiting program!\n");
; Z# Z" L* J' W# A0 G* D" w - exit (EXIT_FAILURE); - k9 X o0 |3 R
- }3 W' e/ W0 s3 E& z6 I9 N
- }) n' b8 o2 S8 l
- 5 t! X+ `4 w" y8 p2 A, F& V
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
9 Z9 X1 L) {6 p/ z4 i( x# d - static void check_value( char *function, int value )3 f. N5 p4 ^/ `0 t& _9 W
- {7 F# l; G7 F! U: Q
- if (value == 0), I4 G4 a+ Y6 N9 O( V+ U
- {
: q6 ]: b" D6 ?/ H! _7 L8 Z - printf ("\t%s is NULL\n", function);
- g% {7 { q U6 l* |5 s - printf("\nExiting program!\n");4 S4 a! G' t" G* ^+ k% ]
- exit (EXIT_FAILURE);
! t; {: ?8 Q, e - }; E- J; |# u* t7 }! c
- }
1 C3 c! N+ _# m/ h+ x5 A; ^
7 C1 W7 y, K# m' D- * {! R* q$ G' x1 z9 K
- static void do_it(void)9 T! Y: ]7 p' d9 A; {+ N- }0 V
- {# K5 r9 w9 ^8 Y3 ^$ B3 Y
- int
2 n/ a( i( ~( p8 ^- R8 J - attach_types[1] = {1};) ?2 z0 k! j+ i7 s# a; U+ u
- tag_t ; F/ ~" u S- S% ?5 j
- rev = NULLTAG,
% ?3 q/ i. P2 `1 p - process_template = NULLTAG,
: F0 l5 g v$ k) O( ^4 h3 q - process = NULLTAG;5 o( _. m$ e' B
/ T5 _( U" `$ E$ _/ X. }- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
% f! C1 \6 D4 p/ |- c6 ]0 V - EXIT_IF_NULL( rev );# c, M9 x# L# P! X
- $ s- k# ^" q9 p! e$ H& W
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 9 F. I: V* A! X* E1 _! W+ B8 a" Z; k
- EXIT_IF_NULL( process_template );
: Q! n: R% ]9 N, b. g# Q1 Q) i - k$ \1 p' W% y+ h* {! j
1 C; g0 q+ `# W0 K- s( c- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, # T. N2 s% w1 q5 x% ^/ K
- attach_types, &process) );- o% l0 Z; k, y- Q
- 2 U/ o7 o$ e# \/ l2 `6 R0 d8 K: m
- EXIT_IF_NULL( process );
. V+ k9 q b6 n3 M. E - }
9 c i6 D! A2 X8 v& G
' O# \: k: {/ u2 V" Q! _0 x- int ITK_user_main(int argc, char* argv[])' P/ Z- i. I( u) w
- {
; V" e- w" H4 H; r1 p( z - int
- S+ d/ t% z S - status = 0; . J% G- R; \2 v
- + _: J A- T5 T8 V. s/ r3 W3 e
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );" i" T A9 y: A# x0 X8 u
- status = ITK_auto_login();& m3 J) A$ D0 j7 r# p
-
/ F+ \% ]0 o$ `0 G' @) H - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
\6 f: R( j% G7 H7 }9 y" ] d3 u - else
: k( w7 |6 w0 ?$ U0 H - {0 x" j8 B4 Z2 ]* G2 r" ?
- printf("\nLogin successful!\n\n");
- ?' \3 I7 K# h8 ] - ITK_set_journalling(TRUE);
1 t* M6 T9 z+ l4 h) }& X. ` - do_it(); y. E( P0 o$ P$ L/ K
- }) ~# E" y& H' A, d/ f
- ITK_exit_module(TRUE);
G- q! Y- C: o7 _% Q - return status;) Z' @* R# x; j% ~5 d w
- }
复制代码 % s4 y1 V4 d4 o. z# b: G# v
+ \- G6 Q; t. l- p$ z2 [4 O* K5 Y
* o) n: R2 a1 z+ T% t |
|