|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
1 P4 i p& T( PTeamcenter ITK二次开发源码分享: 创建一个工作流* X: D/ u5 p+ }% ]2 m* N0 J8 v
, u1 M3 {' R1 D! C F3 J- /*HEAD CREATE_A_PROCESS CCC ITK */1 T0 ?4 W( b: ?( U# c5 q( B
- #include <stdlib.h>
& ]; i+ J7 g: d0 J* ]- W, [ - #include <TCcore/aom.h>
2 Q4 p; [* n. J: H - #include <tc/emh.h>
/ H* k+ u n: D - #include <epm/epm.h>
! [1 B7 _5 x/ | - #include <tc/tc.h>
$ A% k7 R1 O5 G/ R - #include <sa/tcfile.h>, Y- n: p& w5 ^! I$ N" \2 {
- #include <itk/mem.h># A3 U7 r( s q6 _' P
3 o! M& Z1 y! Q- #define EXIT_FAILURE 1 & T" v* \5 k5 f0 c4 B6 C+ P
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))8 e0 T+ s/ i5 S. h' E
- static void report_error( char *file, int line, char *function, int return_code)" \3 |8 D( G3 R" g' y3 {8 U
- {
9 M9 ?- {* q1 d& F: n7 t - if (return_code != ITK_ok)) f+ \- w& u* V9 W, i3 F
- {
- ~" {& ]4 L' A- J( r. ]$ G* L, ~ - char *error_message_string;
% @# s3 R; q, e - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
& u4 b* D/ e" z3 m - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
, A' G5 O# K2 g' y! r- g - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
& v/ z$ x- T$ U$ U- p$ j5 M - if(error_message_string) MEM_free(error_message_string);
& d0 C O }7 E) K6 p - printf("\nExiting program!\n");
2 r7 Y# X3 I; T; d$ h: l$ S, o: g; m - exit (EXIT_FAILURE);
6 a+ D& W% e+ X0 u$ e) A# k+ X$ y. k - }
) M8 F. Z! D% ]. V1 e - } S# g5 L; x9 \/ F
- $ _. w- v" ~4 D7 Y
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))1 O* k) l& M2 Q& s& v
- static void check_value( char *function, int value ). ^6 s7 i! t" ?6 v" R
- {
& G F% v! P' `" }, L - if (value == 0)
& A% g/ v0 `$ R% P1 w! |8 K+ u. G7 B - {, x ^; y5 l3 x+ U ]/ v
- printf ("\t%s is NULL\n", function);
. _* v: h0 ?, U4 _ - printf("\nExiting program!\n");
. w: K9 P! a6 I( Z - exit (EXIT_FAILURE); 6 ?+ b8 {; v$ D0 o& o2 ]
- }
$ Q! S9 o+ y/ } - }3 M6 z; c( p8 O# p1 e
- / ]! B# s" V9 @6 |
- ! n% Y3 u- i. `. H( s$ W7 a
- static void do_it(void)2 ?% ]% ?3 p: Q- j v4 z! N
- {
( W5 O% L7 S( R+ q' C6 Y& r9 G - int
9 m" L( y4 m1 }# F4 i( J - attach_types[1] = {1};5 f: T- M/ o# k8 Z& Q
- tag_t . ~. ^9 a5 P" }
- rev = NULLTAG,
9 b' S+ i9 ]$ j3 j' j8 W7 `8 l - process_template = NULLTAG, - ^$ M' E2 a, f+ ^, U
- process = NULLTAG;( a M2 N; b+ f
- * R+ q! l! n" u# {7 i6 Y( c
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
4 }' K( s- K* q) u, Q4 x - EXIT_IF_NULL( rev );$ F4 `# a5 d+ \2 h# Y5 w$ B
1 p+ d4 H1 \; ]2 u8 d7 Z5 a; p8 ~$ q/ l- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ( p: X9 M# m- x G1 A' W H
- EXIT_IF_NULL( process_template );3 p) y( {9 I/ G. G4 E
- ; e( t% O L* ?3 @3 ?* B& ^- X! l( J
- , J9 }+ z$ ^. E7 g' b: D1 z8 r
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
/ Y' D# {3 i2 T1 G1 a) G - attach_types, &process) );3 B A+ J. P" \0 a% l% @ n e
- 2 l, ^9 c, B8 o+ n9 e# _
- EXIT_IF_NULL( process );
" P+ s8 E) q9 ~3 N, g8 s9 d/ A - }
: X5 ]7 `4 L1 e- v
; d! T+ u- v6 r( a2 o( e' o- int ITK_user_main(int argc, char* argv[])1 F$ \% X p/ @
- {
0 S% P% y& I) v+ ^* z7 V - int
* L0 d! C/ X1 M- M$ F2 c - status = 0;
( r( `& r. T; g( n: K: P - + L1 q$ Y( { R0 y
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
$ }. V" v3 O! G& [ e4 ^ - status = ITK_auto_login(); S* N3 y/ C3 E a% F5 U. \& i
-
1 {' n3 q! d& z - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");7 u4 R5 F4 F+ \; `$ G! o& R! T: w
- else
$ ^# E: {) A$ |+ t; _" u- n" c: ` - {
' L! H* S- Y: u& a2 H - printf("\nLogin successful!\n\n");
8 L; o/ O+ a: v! { s - ITK_set_journalling(TRUE);! V5 o: r8 n* R/ Y6 `
- do_it();
6 Q% ?3 d+ _6 D6 _! n* @ - }
. g- A! j* }. n5 p _$ U - ITK_exit_module(TRUE);
' p6 ^1 ~+ y& M t9 c - return status;! R# g" U4 c% S: o- q1 K: a
- }
复制代码 + f/ y' ~! M+ J3 l$ D* y+ J* \
" D; c. l, W/ J: j3 [# E
. Q3 Y ` [* c* x4 D! P% G) y6 v |
|