|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: T7 n$ ^7 B3 W% jTeamcenter ITK二次开发源码分享: 创建一个工作流( q' s/ S+ C9 C
4 F& |+ ~5 Y7 P2 Q3 V* L- /*HEAD CREATE_A_PROCESS CCC ITK */
0 ^& ?6 z( Z& S8 C& _ - #include <stdlib.h>
3 U3 b2 @6 n! |- j - #include <TCcore/aom.h>
. M% i2 M4 I& e9 ?% G2 n5 o - #include <tc/emh.h>! k* W, ?8 {8 z
- #include <epm/epm.h>3 g3 z5 a2 N6 U3 q$ F! j, e
- #include <tc/tc.h>
1 G, h6 z0 J, e* r6 i. U* o% [ - #include <sa/tcfile.h>
/ W9 ^: R3 L+ c/ n( G+ _/ z' y - #include <itk/mem.h>6 q+ ^. ^' S# Y7 T, p
- . W% R% x! k) q& S3 b( U
- #define EXIT_FAILURE 1 $ y" M' Z; N1 M8 D; l" G' z( B
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))( a1 K4 v" y& w6 ?) I! g# x$ X% \
- static void report_error( char *file, int line, char *function, int return_code)# L3 N- ?* o: q2 M2 v
- {( ~; v4 R9 H t* f4 S8 E( R0 O' u
- if (return_code != ITK_ok)
, o- W5 d- b, C - {7 \# c; G+ m5 {; ~" S
- char *error_message_string;
7 n ^, i6 K1 g, _ - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
! O2 v9 M! i% y7 y2 ?% I - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
- i% L: k4 F7 e - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
- b a3 d$ ~( m- \. T) Z - if(error_message_string) MEM_free(error_message_string);2 v5 ?5 Y9 F" d/ x" ^
- printf("\nExiting program!\n");& E' d/ o! N' i9 ]: \# q( g
- exit (EXIT_FAILURE); 4 ?# _1 q% X/ H( x
- }5 B% z1 w( F [( K+ s8 _" E
- }
1 _7 X$ ^7 t# A6 m7 t6 n- C - 2 s$ {' _& T5 r9 g
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))9 F3 K' c# D c4 R8 Z
- static void check_value( char *function, int value )* f: M0 |4 h2 U# j) A
- {
' B/ M+ W* \3 |+ y4 a - if (value == 0)
8 U$ Z& v) M; B - {9 {+ T& B1 H* m P7 z
- printf ("\t%s is NULL\n", function);
1 |$ L& _; X9 S - printf("\nExiting program!\n");
( R+ g$ ^& ` b5 `' \) T - exit (EXIT_FAILURE);
# d/ O L2 y% v9 o- B8 v& J | - }1 S2 q4 Z9 ~$ A
- }$ a" s" j9 x; l7 s
+ ]' s1 b# @9 }( l
3 D$ W% I4 S) B4 }3 J- S" ^% m9 I- static void do_it(void)
9 @) }" E$ i) N% O - {6 c+ Y; \* F7 J# O0 i) S: t
- int , h: N' G7 G0 v$ j/ |' I; N
- attach_types[1] = {1};
6 q- g( p& ?9 b0 _# c7 h; C - tag_t 9 ~ i9 `( r/ Q/ F; F- w. \8 X
- rev = NULLTAG, 3 p7 i/ G8 ~# K; ]* s- R, s
- process_template = NULLTAG,
4 M0 q M; e: {8 E& ^* Z - process = NULLTAG;
: i7 _8 x) n4 @4 R2 i" N. u- t* i - 9 \7 K+ z1 L: ^5 b
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );7 b& N. U7 `8 i9 U$ F
- EXIT_IF_NULL( rev );( Q4 B, s! A! x% @3 l# g
- , o0 B0 k2 y# @8 l: l
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
0 V9 _6 b/ F% W( n/ r - EXIT_IF_NULL( process_template );
Y( s9 C( C# }' b( Y - 0 w$ r O+ n& y# E+ `
$ v% {% P5 H; u4 l7 ?% g$ \- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, " |4 O3 |# O% @& r. J5 t3 A9 Y
- attach_types, &process) );
: s& t- K, f0 ~ H0 @& |+ V
7 w. h6 ?* k5 J5 Q( u+ e( R& C& ]- EXIT_IF_NULL( process );
$ v7 |) t. Q) v |+ ^" ?( R - }
3 @" g& [( b* Y, l" O. ]
2 i& A9 P- ~. v/ f4 c- int ITK_user_main(int argc, char* argv[])/ e' W1 ]# S& A- j0 M: v# T' x, a
- {1 f/ i% ~* t7 Q& z$ J$ O2 U$ A( g
- int
! s' G8 U4 D) @$ @( w1 h - status = 0;
, Q$ N/ ~- b# m -
+ z/ Y d& H4 r1 Y H; a* |& P( p& \ - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
9 R. d2 c- q3 {8 U1 H, ~* {2 P - status = ITK_auto_login();
; I1 V! J& h+ _9 V4 H - ) P/ K5 C% } u
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
; E' ]. J2 x% z; {* B o2 X0 z - else
$ L: @$ l, W* u; F+ r! U - {
% M# i1 v R2 ?) z0 d" V8 ^ - printf("\nLogin successful!\n\n");: ?( ^ {- S4 u9 j. u( `# [$ Z
- ITK_set_journalling(TRUE);
; g' Q+ a* n3 `+ a% m - do_it();: v" _% x; b* _; e! G
- }
6 L0 j8 B. N! u p - ITK_exit_module(TRUE);3 F" D/ C' `8 c6 a
- return status;8 B+ C; }3 H1 N R. C6 P" E z
- }
复制代码
8 u& e! Q/ L0 l B
0 J [7 o1 p& ^8 \0 E+ H' F! E: d2 w( _ M! D. `
|
|