|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) V1 `$ G" Q$ w! F( S2 X
Teamcenter ITK二次开发源码分享: 创建一个工作流
. R8 s1 [1 V% H
4 g0 g3 }* j- y- /*HEAD CREATE_A_PROCESS CCC ITK */( V* {3 H! V* ]5 t4 N( N& `
- #include <stdlib.h>) u- T& G( u- R7 Q- ^0 ~! i f& ^
- #include <TCcore/aom.h>4 o0 N1 Y/ J* e$ O! ]
- #include <tc/emh.h>" K3 ]* D4 R: s' J: `$ q: o
- #include <epm/epm.h>
' o' R/ A3 Q8 _ - #include <tc/tc.h>7 W4 a- _$ Q( Q, n5 I
- #include <sa/tcfile.h>+ t- Y; y( [8 P% l8 ~* q
- #include <itk/mem.h>
B7 a% `+ j' L - . J" A( i0 Q6 m! \
- #define EXIT_FAILURE 1 9 ]( L/ x8 R2 x
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))5 K3 g+ D( I: T# Z
- static void report_error( char *file, int line, char *function, int return_code), O& ~2 k. s! r6 L3 @& v P
- {( b6 Q# `- J) P* u9 B( u4 Z
- if (return_code != ITK_ok)& K; S% M/ Q7 R. e" M$ J3 q
- {
p0 w/ d* E" [ - char *error_message_string;( Q1 n9 \4 f6 z8 }3 M1 n" O
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);8 S1 j9 R3 u/ ]8 K5 t# Q- @
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
1 l/ B- \: H2 V. ], ^7 i4 Q - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
, Z7 `) Y8 B: e7 q+ U2 z - if(error_message_string) MEM_free(error_message_string);
" A4 i6 {" m! w' `9 E$ f8 @4 _ - printf("\nExiting program!\n");
! M/ y c8 e7 `$ e, ~, a - exit (EXIT_FAILURE); 8 B' p$ ?% F3 `- u3 f! b
- }/ j4 d3 _* e- D% `) s. Q) P
- }/ g: t" ~" b% n9 D5 ?+ X
- : W5 D e# H, y+ g% @- P" \
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))% i$ T& r+ W: j* }9 `
- static void check_value( char *function, int value )
: ^, ~7 n0 p3 G8 O" C- S - {! [$ l. ]4 v- L( p+ l3 l
- if (value == 0)+ U+ r# A3 H# V, c n$ U- j) Y3 ?
- {
7 g( s' I, L+ | - printf ("\t%s is NULL\n", function);7 q% g3 @( K6 u2 F
- printf("\nExiting program!\n");* J# t! w6 m9 H1 g9 j
- exit (EXIT_FAILURE);
, s; ^$ g* y! I+ m - }5 j! O1 N0 l1 ~. K' B! k
- }
9 R+ b3 x1 ?2 ^7 l8 Q/ Z) d
3 m9 P7 \$ W4 \$ `( p; T
9 }; s, q. T* f! Q; |$ k6 F- static void do_it(void)
* t, B/ R* |; Q* o - {
0 s! p5 P& b* Y* d5 l - int p# l F p. b* j% q
- attach_types[1] = {1};
A* i" I* r3 |2 j - tag_t * U5 \* p! `( j% o U8 `
- rev = NULLTAG,
/ Y! U- u- d( I" E! A - process_template = NULLTAG,
3 v) F% |4 v; j$ W$ p. o- {* ?( w* U - process = NULLTAG;# `& h+ f+ E( p+ m( u4 Y) p
* D* A( g/ f; o. i2 t- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );, o- e$ Z+ A5 M9 N9 E! J
- EXIT_IF_NULL( rev );
- I! Q0 _3 M3 g1 z1 h
+ A# x! K; z) ?* E, @$ [- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
* u1 A3 N8 _2 U - EXIT_IF_NULL( process_template );
( q; b6 w4 {1 L# X. s
( T/ B$ B4 L. w0 O3 T- ! q% Z! G2 s r3 r7 s1 K- {
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 1 s; M& V! S. _1 [
- attach_types, &process) );
, T# `( q+ m$ n U
$ T$ v& C, W I7 ?4 J6 T0 ^- EXIT_IF_NULL( process );
6 F$ v# B6 g, a9 A- v - }
( A& l' Y7 K$ L3 H
" x% B4 d5 o% Z* Z- int ITK_user_main(int argc, char* argv[])* p. H% O3 m5 S/ s* I" ~! n
- {4 \2 F' W( e% h0 S! z
- int' }: T# F9 i4 O0 G
- status = 0; / T9 b$ T* o8 |% g( A# ^
- & n. S" M ~$ M# v
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );& n; O% O' f% ]' Z. M4 m
- status = ITK_auto_login();
4 _ D. |& d w% O3 Y8 s) G -
2 p2 _7 y$ K/ r$ a - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");6 y5 h6 \+ U7 z2 H) c3 C
- else% A" Q$ t0 m* @2 ~- P
- {1 Q# K) v* u8 `) D) V8 T o) B. ]6 q
- printf("\nLogin successful!\n\n");: f: J& H& R0 K/ T4 q
- ITK_set_journalling(TRUE);
9 R/ P% y# N: \' `- L9 q - do_it();
) P- e& K/ @* o' \4 k - } c. \# g+ q3 v2 \/ X8 L
- ITK_exit_module(TRUE);* X7 o* k( e5 v
- return status;1 }+ K p3 X$ U0 p; ^
- }
复制代码
2 r, A) K, ^6 W D( C/ f1 D4 B! p
]0 k# ^8 S; {$ o* L# r6 U+ U0 G! ~8 Q# p' {0 n
|
|