|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* u2 N; r' e5 |; V/ K4 hTeamcenter ITK二次开发源码分享: 创建一个工作流
+ x. b7 f7 o5 t: A. C9 }$ J; o5 [& N
- /*HEAD CREATE_A_PROCESS CCC ITK */1 d i+ h1 d9 j9 K
- #include <stdlib.h>
3 C2 z8 A2 I K' r" { - #include <TCcore/aom.h>
* u( b# D9 ]$ V - #include <tc/emh.h>
0 z" l# F' C0 v7 h$ U - #include <epm/epm.h>
$ C& R' K* ~5 V B9 h+ c) H - #include <tc/tc.h>
4 T% J* N" E. I - #include <sa/tcfile.h>& g, C: ]' ?" ~6 M0 s; P
- #include <itk/mem.h>& L6 Y1 C& G3 I* q i) V
- A; c, a2 s. h S- #define EXIT_FAILURE 1
+ ^7 p1 A* B# X0 ^$ P9 V5 v - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
% V1 T. E4 Z2 C( W - static void report_error( char *file, int line, char *function, int return_code)
/ u' ~+ d* ]8 P - {
3 L; }7 ]9 V) h - if (return_code != ITK_ok)
2 C6 B: K0 ^3 R: ~- U$ Y" t& L - {
7 M7 g! w% F& t& g& m9 j - char *error_message_string;# v3 c1 r: z0 `; P) N
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
7 T5 z- Q( W; `/ w" g! y - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);& E" s. [5 c* R/ z0 j2 M: t7 k: W" O
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);) a |- g( x8 r1 A1 g+ Y
- if(error_message_string) MEM_free(error_message_string);
* Q% T6 X7 v0 W: V0 K* k7 [! ]# m! X - printf("\nExiting program!\n");
) z1 b& Q0 S9 |: [- q# M - exit (EXIT_FAILURE); 5 X7 r& E' Z* }
- }
8 ~6 y. E7 w6 R7 C" [/ { - }, _" m2 @4 Q9 y, D' h! J
- $ o( b* P2 @/ L4 ?5 q
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))3 w( W4 n. q: \, V9 X) K X
- static void check_value( char *function, int value )
: o/ @9 Q: X1 n, b - {% S+ q& ~9 R; C( k. Y3 ~+ f
- if (value == 0): f/ Y* y1 j7 P. I
- {
. c* W7 P& B2 H8 \ - printf ("\t%s is NULL\n", function);
) C- |! u9 K2 ^6 D, I" L T - printf("\nExiting program!\n");* Z" S$ h8 f* W: @) B8 g* r
- exit (EXIT_FAILURE);
# D2 N, G, i |) H e( p6 ^1 x - }
' i; z0 R1 l$ ^7 k; G( b - }7 @" o; y) q8 L
0 O- E* a: X( z4 h" H- 6 P' M( `2 p# b) z9 I1 ^; [
- static void do_it(void)& P: H f" v' y* |, W. m
- {6 ~ n# o0 W9 S2 y t/ t( `' X
- int
2 `7 K" n" Y+ \3 }( P I( T - attach_types[1] = {1};
, _3 @0 n* J% l; H3 a - tag_t
_7 a! W. D0 C" n' M0 U - rev = NULLTAG, " i2 T& U( J, [& s' ]. [( O4 X
- process_template = NULLTAG, " z+ A2 k H9 m, P% ~) Z
- process = NULLTAG;
& a7 M+ u4 A% b0 _- ~& w
" u3 q8 c( ?( |' Z5 F- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );% Q) h2 s2 B1 X7 [/ ?
- EXIT_IF_NULL( rev );
6 o' m t! F9 k
3 j" I7 k; L' w* x/ b- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
9 @ ~( p+ ?( [$ a - EXIT_IF_NULL( process_template );
* y1 J+ N6 [2 a) X% d1 C$ y
: s$ G9 Y p; Y" Q
' W4 t I! C8 q- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ( F5 O) \5 v h% P& X
- attach_types, &process) );% D1 ^& {! e! R6 d6 L- m9 B1 o* Y
- 5 _. ~5 M" }5 ^2 N' G4 K( S. p
- EXIT_IF_NULL( process );, Z6 b( t4 b+ p8 B
- }9 t7 R1 F6 f; q
- 1 Q2 X" Z4 i( ]1 f5 i0 [* G
- int ITK_user_main(int argc, char* argv[])
% A) V- w0 D, K' }6 O0 N - {
. D j# \4 o" S5 U% y - int
' g! z. Q# ?5 [0 q4 R. I' ] - status = 0;
+ \$ M& C) Q3 J9 q2 J - * c& n9 t' R; V; Q. `: a
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );6 Y) J5 S- Z N5 D' g- y& c
- status = ITK_auto_login();$ M& O7 E! \6 I7 K: O+ G( ~, U
-
( G( i7 F: x* d1 j/ B - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");& H4 m. U" `# F+ j/ {' t' c5 M
- else8 S8 v) L# B+ D% v
- {
( y6 T! n# b. w - printf("\nLogin successful!\n\n");
' P4 T6 E; E$ V0 f7 q - ITK_set_journalling(TRUE);
# ~( f& g7 u8 ] - do_it(); f# R2 d0 q5 ^6 A( |5 F7 U( |
- }
& [ }. G) D1 `' N+ J) i - ITK_exit_module(TRUE);' e9 A& ?& f D( c2 v9 E
- return status;# |" _! l9 }9 Y% E5 ?
- }
复制代码
2 c) j7 ~/ q0 ]6 Z& k
) S, w2 ]# J! i5 A9 @8 M' n, S: j, \" I% _$ y8 m1 P0 l; J
|
|