|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 N' P# L/ p1 [# m4 w' p H; ZTeamcenter ITK二次开发源码分享: 创建一个工作流
( C# ~. T3 n5 P! S' z! G% C- W7 l* u" d2 y6 X7 j' W) v
- /*HEAD CREATE_A_PROCESS CCC ITK */4 {' S. o3 f4 D2 l6 e3 V3 t6 e# W
- #include <stdlib.h>
8 [& A& r1 u% c5 ?% O [4 x - #include <TCcore/aom.h>- @* Y. Y! N0 r6 [# ]: J# ^- e
- #include <tc/emh.h>0 {8 j6 G, D) Z# w( D# a9 n- d
- #include <epm/epm.h>4 `- n# m( l/ E! N+ c! j) e% J
- #include <tc/tc.h>6 u9 T; F! y: h3 s* T6 f" v
- #include <sa/tcfile.h>+ }3 c# z2 t- {1 r* P9 J' A
- #include <itk/mem.h>, i( }- H: P$ B: n) ?. j
- 0 |7 ]$ p: Z& u. P* {. ?+ N
- #define EXIT_FAILURE 1
# ~1 ~% ]% O* C, E - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
5 ]' E5 t/ O* ^! [ - static void report_error( char *file, int line, char *function, int return_code)
4 f$ c: R: ?& v* t& U5 C3 r0 ?; s - {
9 P4 u# U0 Z' \/ R/ E' Q2 k - if (return_code != ITK_ok)- i9 t. k/ h* S& L2 h
- {
7 W! g& w& k* c - char *error_message_string;
; b9 Q" _+ H# d5 E! c - EMH_get_error_string (NULLTAG, return_code, &error_message_string);* P8 D% {+ C6 `' \
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);, J/ s3 R2 p! b1 r# _" W4 G( J0 l
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
# g3 X& C: R. N6 L) Z: E - if(error_message_string) MEM_free(error_message_string);
) H* H7 J8 ?+ b1 @ - printf("\nExiting program!\n");
/ n5 m$ r% B& C$ O - exit (EXIT_FAILURE); ! T$ `7 v7 r/ b# Y8 p
- }
: v& ] U$ H* B( X# P - }+ B3 t7 G7 w" k# o
- , r/ i$ F) ?# U I( u# Z
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))" v) b) I+ g* ?' L. R* C. R" R
- static void check_value( char *function, int value )$ L/ k6 |9 F5 c) Y6 {- {
- {* o* b4 F" d/ Y: B8 W- ]: Z: w
- if (value == 0)( j# @# |! v% H7 L. V
- {3 j$ @3 M. z; x; O
- printf ("\t%s is NULL\n", function);" `) | g3 |2 C0 P7 Y2 \' D
- printf("\nExiting program!\n");
# ?: R) a4 l7 G+ l - exit (EXIT_FAILURE); V1 G$ N9 a, |9 y
- }
e0 }9 E C; F) F7 s( f - }
2 S6 r, E$ l9 Z& V7 W
4 L7 y% K, O _6 ~6 p, |: q) s% O( [- % I8 u6 V! j: J7 X" T5 {
- static void do_it(void)
; f9 k1 n3 l% K - {
; _! V/ I. s K A - int 3 }: @& u/ v2 N5 y' Q/ \
- attach_types[1] = {1};6 X( W3 y0 D3 ]+ p1 M n- w
- tag_t , k0 \$ {$ E w8 M9 e2 M4 D) d
- rev = NULLTAG, . z5 c! Y3 a8 m6 F% p
- process_template = NULLTAG, 4 w: s7 _4 X+ W1 V$ h9 k: z
- process = NULLTAG;
; M* r5 z! a8 p0 \$ G0 F4 A4 V
/ p! j: K; A5 ]7 M* G( i- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );2 E% {3 U# w5 G& ^
- EXIT_IF_NULL( rev );
2 u, a5 k( \4 A% S9 Z; q7 u9 I - . |# u3 L( l0 m$ g8 {
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
- J" r4 Y" M* K( i - EXIT_IF_NULL( process_template );3 x: j M/ g/ f3 T" [' v3 n
- % W4 w; |% n% U h0 u7 t# G
3 |# u$ F: \: W& [2 Z; f- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
. y* j% g& ~7 P# P* c9 p# D9 b - attach_types, &process) );- N2 z4 x9 @. g0 ~2 I
- U; r( ^: M* v& A; x" q
- EXIT_IF_NULL( process );
1 u3 x. }7 X+ X - }
* d- k$ R4 x( e3 q( ^( W - 2 G5 H" d- w, b: n0 W0 T! h8 w
- int ITK_user_main(int argc, char* argv[])
& m. ~' e( }$ b1 R0 i a! f" H% C - {3 \' R$ }* J8 i9 C# i Y6 N. R) e* k# ?
- int
, R- z7 M3 V/ v- K; g& C- H - status = 0;
4 O P( t# u3 J7 a0 l& e - # {. D) L0 p( o m% G$ \
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
3 m+ U9 O* a8 Y; V! i, o2 M7 b0 i) K - status = ITK_auto_login();
( Q# g- r. b% Q4 G; d - 8 [8 m) V1 n2 y" w4 D) L
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
! O& Y& w( n& u- p, A: w - else
, h' G8 ^. V/ f5 x - {9 {9 j* ?' S9 g* l
- printf("\nLogin successful!\n\n");% Y' r5 l0 ~, q
- ITK_set_journalling(TRUE);
' [* _- \# Q# w+ ? - do_it();2 [( R( h* e( Q8 r- [8 d" O& Y: i
- }
7 I# _! d- E6 Q ^ - ITK_exit_module(TRUE);
( `/ U# Z- c, ]/ _ - return status;
1 ]8 h7 v- s3 C$ L' e4 s - }
复制代码
. D G0 s/ m) o# q! y( X& P; h6 r/ l& Z6 U% B5 j' L( N
3 }) _6 B% O+ B7 n8 k Q4 C
|
|