|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
% _- h: U% x6 cTeamcenter ITK二次开发源码分享: 创建一个工作流
' T) d& t$ L0 }6 w5 q% N* h8 @5 H+ c
, ^7 Q4 M% _) F6 Q' U- /*HEAD CREATE_A_PROCESS CCC ITK */. i$ O- O. @: \) Q( h* u% ~, C
- #include <stdlib.h> N( P' F6 }! M1 Z+ n4 }
- #include <TCcore/aom.h># ?( B. O4 K8 D+ j* t8 k( t
- #include <tc/emh.h>
$ H& W( p4 |9 ]" i# h, O - #include <epm/epm.h>4 t A/ V; z: [" I; _7 Y' v! W7 r+ ~ h
- #include <tc/tc.h>: A% O8 e; W5 J7 N' v9 U
- #include <sa/tcfile.h>
) I8 O h- P R7 U) }9 F& x3 E1 q - #include <itk/mem.h>
+ d0 ^+ Z8 \- N& d8 A3 U - * f* o- W. u9 {5 K: {0 E2 f9 A
- #define EXIT_FAILURE 1
E1 ^1 O% m2 R" {9 H - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))). c& m4 B' p7 q( W% @4 \7 H, v
- static void report_error( char *file, int line, char *function, int return_code)1 w" |/ x* g3 P- K- M, o
- { l7 c! A$ r+ }4 b5 j" R
- if (return_code != ITK_ok)$ P# J F9 X9 i8 s* z
- {
2 E- m0 e1 o7 x7 k4 B - char *error_message_string;
% u0 |0 K$ H9 i- |, O4 r - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
: k) ?8 e5 C C3 }4 S1 } - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string); e4 v/ K$ X* k+ u, C* |9 y
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);% ^0 P/ w+ d, H N6 k, R
- if(error_message_string) MEM_free(error_message_string);% x- |; i9 U7 d+ U
- printf("\nExiting program!\n");5 i a" U6 {' h' D/ N$ c: x
- exit (EXIT_FAILURE); : B% X5 y* A; Y: D5 ?: a
- }' b5 t/ Z, N5 U5 z
- } q1 @ B+ _7 U% H& I* z
- 1 g: y3 `7 B3 q9 B, |# y) I
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))# D( I" v( x q$ c$ c6 G
- static void check_value( char *function, int value )
1 I2 N! p- K3 e1 C K% b - {
) U5 q" K" D( M) q, `4 [: U. I - if (value == 0)
$ J3 `( s1 [* T: v* ^ - {
+ D2 [; d; T, V# Z" K - printf ("\t%s is NULL\n", function);
0 l& A' R, v, y9 Z - printf("\nExiting program!\n");5 z5 N" B! V# w) O) ^. `
- exit (EXIT_FAILURE);
+ B0 w$ C1 S7 A/ M0 z - }/ { u B" |' V! G) \4 i
- }4 s" b- X# N3 o3 J9 r( {4 H7 R) l
- - g: m9 R3 l' ~% i* ]3 U3 B
% u4 G( ]0 f8 D! |* v- w3 Q- static void do_it(void)
. h$ q9 J* z; }7 O5 C0 g - {
5 r# b9 s4 o4 L4 N; Q - int
u! m2 b+ y4 w - attach_types[1] = {1};" Y/ F' G2 d9 j, k; w/ N3 F; W
- tag_t % q% Z+ n# t' J; c
- rev = NULLTAG,
0 T3 W h* s# W, j( o - process_template = NULLTAG,
) V; b ^1 ~" P/ I, U+ E - process = NULLTAG;
" u, f6 r5 N# a# Y7 B' b5 S
4 p; p- M7 ?- K- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );: y9 m# Z8 p- x+ `% h) g& y
- EXIT_IF_NULL( rev );
1 m. ?* m1 \2 w! e - & g$ U% y% M4 r! j4 w1 I( z) A- Y
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
7 ?, Z) _- s& \5 B5 ~0 W - EXIT_IF_NULL( process_template );
+ J5 J, g: |" e5 \: S& V/ I! M - - c+ ?9 k# s, ?; k S9 T. t
6 b' G7 z3 e- M3 S: W! @- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
M, k( H3 [( G- G3 `6 ?* X' | - attach_types, &process) );/ u( M! a% d4 m3 z d4 ~" R
- 4 ]! O- J: Y# T ]
- EXIT_IF_NULL( process );' }2 }& |2 l0 P1 T: s$ l+ h
- }
4 R$ E7 D% F) @
( ]0 h4 h0 S, \" w4 a- int ITK_user_main(int argc, char* argv[])
( @' o2 e( d+ W, [$ h6 ~( H - {" P6 M! O8 D" S) a' M
- int5 S3 J. D( s |6 @3 U
- status = 0;
: r8 o0 A0 E. s, v -
6 ]1 t! m% i- k3 S - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );) G+ m" F- _0 _
- status = ITK_auto_login(); ?; P' C- G& x# J: P6 G( [5 N
- 0 p D. ?. e$ i) [- e0 m: e: Z
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");) u% `/ B5 h: }' S3 ]
- else
! m# P+ R+ p! V1 b4 r1 c+ ~) T- u8 y. ^ E - {' ~1 a, T7 E+ V) j- Q! j) o
- printf("\nLogin successful!\n\n");
8 U- Z$ Z4 A4 r' _3 ?! @ F5 R O - ITK_set_journalling(TRUE);, o, E% x" J8 ^. W! @
- do_it();
: r3 {& Y2 G* Q0 s9 q: ^, N - }
, ^. o1 E9 x8 q2 Z- |- {2 h9 K4 h( a - ITK_exit_module(TRUE);; u3 S2 R( T* }" s
- return status;
K- o3 i$ N+ N& a7 k1 @3 O - }
复制代码
4 F, f0 G2 A* D$ Q% P) o
: r1 B s; T- e' t) d$ E
2 ~. i+ L* I2 a |
|