|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ i& T# ^( c* K! Z( TTeamcenter ITK二次开发源码分享: 创建一个工作流5 L# q; q% U) R6 Q! n
, @. u9 v% B, e$ C3 f* Y( g$ |
- /*HEAD CREATE_A_PROCESS CCC ITK */. a n3 L" P) @5 v; u' a
- #include <stdlib.h>
/ U. M( M/ D( ?/ [: p - #include <TCcore/aom.h>5 Z/ c. N9 ]& u; c8 m
- #include <tc/emh.h>+ z0 `! R( H4 X( w& y
- #include <epm/epm.h>, B, L' b! W7 q6 C( v; S- h
- #include <tc/tc.h>
& a- S" m1 j3 i - #include <sa/tcfile.h>; X3 R0 t4 o$ p; q/ W( m
- #include <itk/mem.h>- s0 R. m Z; d
0 z: @$ h8 y2 ~3 G+ ~- #define EXIT_FAILURE 1
3 |6 L$ \$ [7 H - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))5 d8 G% [) I S1 J
- static void report_error( char *file, int line, char *function, int return_code)0 d( L H$ g% \8 { `& r" T. f8 q
- {
# T ^3 p& ~2 h7 a - if (return_code != ITK_ok)/ d g3 S3 O) a$ ^' w/ U' m8 T
- {
; q$ J, ~4 z6 Q3 L; s: \- [ - char *error_message_string;% v+ X2 l+ H& L5 O
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);1 D- e6 I1 N) j# P
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
q0 X1 L& a- u$ Y5 a - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
- Y2 \8 ]- q! @, ]& {4 l( Y - if(error_message_string) MEM_free(error_message_string);6 v, q! M; o) s0 L& B9 K. K8 M
- printf("\nExiting program!\n");, P8 ]. x& r) s9 _/ z7 ]
- exit (EXIT_FAILURE); ( \7 h2 L' i2 p1 W2 }/ K( W
- }
! `. Y* `4 ?# f" I - }
3 d' f" m4 S) K+ F# h
" p: |" \9 |) r& k1 N+ r- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
# O- ]4 m" D7 y0 X - static void check_value( char *function, int value )& q G1 h" `1 I6 D" u% r! ^ E
- {9 c0 \ `1 ]- [/ X1 w; [. x
- if (value == 0)
" c/ `) d$ U4 a! u' ^3 J# s7 i - {% {& Z4 `& F" y: b2 \3 B2 Q+ S
- printf ("\t%s is NULL\n", function);
( L8 `3 x4 \- r0 ?. i+ {6 K - printf("\nExiting program!\n");* L$ d$ I. r) r0 v
- exit (EXIT_FAILURE);
7 f' A* u; }9 V' A - }5 B& O+ e0 E/ t& K! W
- }. G% a- N- j+ z* L9 K3 e
- Q. {) S' P0 X2 d' X
+ l* G) P) `! ~. v7 D& O0 R- \- static void do_it(void)
. f% b4 g: c7 m" q* O/ A( G3 w2 k - { a' D0 c9 m9 M, n6 h3 Z1 E
- int
: [' b) U/ ~+ e* W - attach_types[1] = {1};
1 u# x* L( r* k( u - tag_t - q* E; W7 K! x% a
- rev = NULLTAG,
) ~1 B; J. m) ~. P% v; Q - process_template = NULLTAG, 7 D0 s$ V* ?+ C+ m
- process = NULLTAG;* O; o2 U0 M1 h" d
* e% Y( z* o' W/ j+ c2 G+ c- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );9 H: r) q0 t" v) J& \. @
- EXIT_IF_NULL( rev );! ^2 K% b& D" U0 c% H" e
- ; u9 ?& M8 Z: D) y; u7 @
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 3 ~: Y' F( I" O& ^. Q$ W) N! v
- EXIT_IF_NULL( process_template );
, f7 V4 Y, a9 O- S2 x - 1 O4 u6 [( P% V4 E. J: D% B- a* P" Q
- - J& @% T% M( b5 \
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ; G' n9 z Q! Q$ f3 o
- attach_types, &process) );: `4 V6 C" v+ v" _4 U8 Z5 X
! e9 d z. i) f! L. Q& D5 n7 m- EXIT_IF_NULL( process );
/ ~' E/ g2 m" ~) x0 K - }
! i- t6 Z/ M5 a7 f3 n9 f) x6 r7 M
* h% e7 t" J1 J: }+ Y3 ^- int ITK_user_main(int argc, char* argv[])
( K3 Q0 d1 d2 w2 s! `! h - {9 p+ y4 i2 U r# p, x7 S$ r" ]
- int/ d! ]/ V0 `* A8 {. [9 ^4 |
- status = 0;
6 i0 p" i! P- h$ p8 y - 0 p1 L& s" A; |8 f, F
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
/ k5 F# ] \ g3 C/ H: P. z% } - status = ITK_auto_login();
8 r t% l- s2 @4 H6 S2 q - 2 _! ]! T# e6 b7 }5 t2 m, q- I
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");$ m4 I- @ M; p0 c3 k
- else
% w& j: n6 h" v! X - {
$ |- d+ z: J+ m6 D - printf("\nLogin successful!\n\n");% d) Q+ y U' k
- ITK_set_journalling(TRUE);
" w' ? v3 a0 D! V! |4 E - do_it();; P. h+ ~- m1 r$ ^3 ?3 O
- }3 e6 }" s* W* u0 C+ k j4 x
- ITK_exit_module(TRUE);3 X! R$ V& J& U5 p; c: k
- return status;( A9 N. p) H! ~
- }
复制代码 4 z# x" _" Q( h m- P) s
. q7 l$ w* {' h3 D" t1 o/ h
$ g/ j/ w' T- `7 E! T) A e* G
|
|