|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
( p c% Z- _" i3 d$ j" a. Z3 U% t$ NTeamcenter ITK二次开发源码分享: 创建一个工作流$ s9 ^- k& w1 K* b: g9 P
- E! t% \8 K* x, ]! }: z- /*HEAD CREATE_A_PROCESS CCC ITK */ h* }8 Q2 l3 n$ w' v
- #include <stdlib.h>
( W2 Y, {2 C9 D - #include <TCcore/aom.h>8 `- ]$ w$ V6 B; x# }
- #include <tc/emh.h># ~& k1 b m+ @; R% D/ x
- #include <epm/epm.h>
' a4 E3 ~3 C" B( p2 y. U' V( v - #include <tc/tc.h>( U6 M7 N' f' d* @3 S4 ]
- #include <sa/tcfile.h>6 n- |0 y) L' ]
- #include <itk/mem.h>7 \4 m5 i: o6 ]1 n. Z/ J2 m7 b
- 8 P/ @9 k I7 e; O& B* G4 ^
- #define EXIT_FAILURE 1 7 n6 A6 u1 u' V% f
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))), \) I1 a1 D2 F% b
- static void report_error( char *file, int line, char *function, int return_code)
; V: {4 u% e3 r - {
* L ~# m( l- y( J9 ` - if (return_code != ITK_ok), q7 q* M) \; E) E; ?
- {
; p, V$ p w. R3 T9 A; P! t - char *error_message_string;
4 a8 Q3 M# V0 t& q0 K' C - EMH_get_error_string (NULLTAG, return_code, &error_message_string);; \$ i' U: V' e2 s! r7 l
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
7 y/ c4 [0 X1 _ - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
% c: D) ~7 N: C7 l/ j2 ` - if(error_message_string) MEM_free(error_message_string);# n; i9 S X6 r% z% z7 z" \
- printf("\nExiting program!\n");: ?7 \2 H$ n0 M& }, y9 h2 K
- exit (EXIT_FAILURE);
5 c0 k7 K6 {% V* V5 N; N- x - }
( \4 E$ G3 I4 g8 G& g, d- {. w - }
* s. E m! M" g \. { Z - 1 z* x) |1 y$ Z( x3 t: ?0 I
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
) N; d8 a `9 ?( T - static void check_value( char *function, int value )
6 a7 z5 ?: l6 x% | - {* ?( ~2 K& H4 Z
- if (value == 0)
4 {% V: s8 A$ F" ?9 h - { G0 I: u. \; Q& i( x8 J3 l+ C
- printf ("\t%s is NULL\n", function);- e7 x/ {5 v7 W1 z' M5 e
- printf("\nExiting program!\n");' |3 j h/ v8 |. d, W2 ~
- exit (EXIT_FAILURE); 5 W: X4 y/ |: y( {, t' f
- }
) ]0 R. \2 m5 C" m9 O: P; B - }
8 F) Q1 d$ ?' l# t
" o% D2 s) b* T! c
2 E" q* r. J7 [2 {! c$ D2 [8 C% Y- static void do_it(void)
% Q3 b0 v* q0 }) y: V8 ?: v - {
8 k7 M& Q/ B$ x' t - int ) G: ~* e' \' t8 `. W
- attach_types[1] = {1};
$ h9 K/ q' t, ]2 f; W - tag_t 3 Z1 ~% `3 M( z' ]% L2 B( x
- rev = NULLTAG,
% a3 k; @: A8 M @- Z - process_template = NULLTAG,
) x( S8 V- H% n6 w* U9 `; I1 G, \ - process = NULLTAG;+ d' _7 Z" c* |8 H
- $ [" W3 F) \" b* J
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
( C8 z( j/ H' ?+ B: S( F - EXIT_IF_NULL( rev );
1 g$ I d1 Z8 e. U+ f( \ ~. m) n
% a- S* y- h3 o% E4 [6 |6 T9 D; `- Z- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 5 M; }$ L) s c$ Y
- EXIT_IF_NULL( process_template );
! F, n, ?4 {1 o# p% L: |4 W5 Y3 U
/ Q, \. P: E1 W3 ?% i% u# Y- , n" w+ J9 u5 e! l& D& ~
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
( J. `; }! T; ^; F - attach_types, &process) );3 u. q4 i$ F* s; ]5 b
7 u# o6 z' o2 l8 j8 n2 q& E5 S- EXIT_IF_NULL( process );) P3 N( F: J$ l6 O
- }
; l- v9 V7 I/ L - + w) `4 e3 z9 N/ Z; ^8 m
- int ITK_user_main(int argc, char* argv[])
" k0 F# b1 I# A/ S - {
! j2 s R7 v, [, k3 G) r - int
, M2 [5 F* ^+ I: L4 I2 q - status = 0; ' A/ Y5 ]6 j0 p% F, O
- + ?$ o v' J: [0 X
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
; F) U ?, g6 @" x# ^, c' {2 Y, o) @4 H - status = ITK_auto_login();
) X7 d* C% R5 b5 `9 W% B" I -
; j* r$ c2 E: T" A - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
+ s$ C1 U! W Q |- f - else
: ?( c6 W3 o# ? - {8 Z. S& P2 ?. u2 J0 c( [0 v
- printf("\nLogin successful!\n\n");7 ~( [+ _& u( k1 V% g
- ITK_set_journalling(TRUE);
+ ^. ~" H% j V# Y- U6 B9 G( k - do_it();
% ]# q. S2 s9 e- Q6 B9 { c5 K - }7 j$ r3 E7 ~* ]* A
- ITK_exit_module(TRUE); W* Z% \' Y$ a' ^" V/ O0 G. Q3 s- J! I
- return status;. f; R& W" s) n
- }
复制代码
1 k N# ~. t% e: \6 t1 n
, C1 G. h' `( c/ R; f+ v P2 @
4 P& H1 `- \8 `4 K$ p) M! [ |
|