|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! L( U: W' B% Y6 V
Teamcenter ITK二次开发源码分享: 创建一个工作流
( J, {( @& W: \) c: j! v
9 W& ]! y% R0 {6 |5 @- /*HEAD CREATE_A_PROCESS CCC ITK */
1 n! c0 U- B4 C$ h' W3 d# _ - #include <stdlib.h>
# f- L! {7 `6 R1 q) ]7 |1 |/ P - #include <TCcore/aom.h>8 ?* B$ P" O- i. R* H8 z7 P
- #include <tc/emh.h>
K- B# x) o' t% F' K) P - #include <epm/epm.h>
$ r9 e( w: s2 B- c - #include <tc/tc.h>) }6 c- {6 o- U
- #include <sa/tcfile.h>; n8 p( }' y' x+ ^) Z
- #include <itk/mem.h>
8 b, G) r- `9 r. ]; q. r - 7 S& L: G' d5 ?3 Y2 v2 x
- #define EXIT_FAILURE 1
! O2 y7 v) H& c8 i - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
: d) u8 r1 Q! I# u! Q - static void report_error( char *file, int line, char *function, int return_code)% q% Q* w7 o3 U+ Y# W% y5 [+ ]
- {. X8 F) i; p: E& A( ~
- if (return_code != ITK_ok)3 l% h! f& _- d( g1 I# C) }
- {& {7 K& a3 }6 A' k$ k- t
- char *error_message_string;
0 \- V' d2 R9 H3 c$ O; S, z0 G5 B* L6 j - EMH_get_error_string (NULLTAG, return_code, &error_message_string);" Q2 D8 o( c* W& V; K
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);' w% v! ~: L, Q; W
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- \$ d6 C) g" P2 o H' o
- if(error_message_string) MEM_free(error_message_string);
( Z, C2 F0 s/ O2 [2 v - printf("\nExiting program!\n");9 K) D! E3 X; ~; Q1 K
- exit (EXIT_FAILURE); # H# X: u ~8 L3 L% H4 G& H& b# Z
- }5 ?/ m9 ^% g* ?0 A% O
- }
7 q6 q& i" a/ k9 L% s8 [
/ Q: H+ e- q$ m* |8 V" Y! M- #define EXIT_IF_NULL(X) (check_value(#X, (X)))& J8 ]$ h3 S. C
- static void check_value( char *function, int value )
7 m+ N) T" G" t1 f1 r - {& p9 l3 G H( }
- if (value == 0)
. q$ ~1 {3 K, Q - {( a) |' z( q7 \" B
- printf ("\t%s is NULL\n", function);
$ B0 V. f6 e( m2 S' T1 L - printf("\nExiting program!\n");
# A% y! K5 s( ? N: U7 W; l - exit (EXIT_FAILURE); ! |: O1 A: z$ y) Z
- }4 y$ ^' a, W' {: b' C) z9 L
- }" u2 p( l# _8 I
- ' Q; ^3 p: J8 f: m+ w0 o) p
! _9 K4 k" }7 n7 V l% X3 d6 o- static void do_it(void)9 l% d$ ~% A* Q% V& ^ m
- {
" ]% V+ ]& j9 w7 n - int
9 m8 q5 i: d ?# d& `; ^) @ - attach_types[1] = {1};% P+ j3 Z4 R1 M2 y
- tag_t
1 L8 Q, J5 c+ P - rev = NULLTAG,
' ], K+ t! c# L3 s5 A1 R) P; }3 r - process_template = NULLTAG, " a9 n1 N4 Y D7 ?$ x$ X
- process = NULLTAG;7 Z- l9 W. c0 c7 F" Q* M
- 6 Z/ ?4 t& { u
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
2 Q: |3 f, |; P" @% ~ - EXIT_IF_NULL( rev );
' Q7 \8 ?5 I( z
) x: A) W3 V w& g0 p- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
+ T" q4 J& o: V6 ^" V - EXIT_IF_NULL( process_template );
5 z/ w* z8 I5 o" M8 }: o* i5 b - $ q* ]- h' f; m/ B
- " z( V9 O0 H, ~* `+ b
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
7 O1 [( I8 u* d* D+ G; M. I - attach_types, &process) );( P& E2 j3 }4 p& @: B+ ]
" `3 `8 _5 X' ?8 E4 v9 W- c( p0 _) g- EXIT_IF_NULL( process );
9 ?: E4 ~5 c3 z8 d6 @2 q$ Q5 }, r - }6 N- A" @" c# c6 q! ?9 _
9 R1 o5 b' {) d& S+ ` N: H5 u; a- int ITK_user_main(int argc, char* argv[])% b' C6 D* F. [% `
- {
z) |# T ]3 N - int
* Q' {1 J7 M- ^6 d# R - status = 0;
. H, R. {; V* y" @/ J @ -
% @: @8 | V: h6 G0 N - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
+ C# T! U3 r+ w2 t4 b - status = ITK_auto_login();
& q2 v! K+ n4 Y4 {% l5 ? - $ L: \9 f0 e1 O6 C8 Q4 _6 z/ `
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");. H. C: {6 R# I( C4 y7 N( |7 Y
- else
8 p. C: U: S# H& z* }: `% d) x - {# X: R) N* n0 b
- printf("\nLogin successful!\n\n");+ L) v+ R. }. K( S3 Q
- ITK_set_journalling(TRUE);4 G0 H1 ?# ?5 }+ V+ v9 _( x; w
- do_it();4 i2 S" s0 [7 ~; {- J% J" U. D: o% r7 X
- }
/ D6 {: X+ F9 A. P$ d - ITK_exit_module(TRUE);
X- y8 L3 L7 b* } - return status;
( v+ o; |% r# t! @& D( N - }
复制代码 , A5 D7 |' b0 u
3 l) U+ O; [# X p+ H
' f0 z6 D/ t" v7 a |
|