|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 w0 @# D2 U" j5 u
Teamcenter ITK二次开发源码分享: 创建一个工作流0 u# n4 U2 ~9 d" ^8 j
, l: r) |# L$ m8 z
- /*HEAD CREATE_A_PROCESS CCC ITK */
. ?1 j! y* l+ l! b - #include <stdlib.h>; O* p% g$ L% Z2 w" E
- #include <TCcore/aom.h>
3 h$ F* d( S- q2 |3 u - #include <tc/emh.h>& f% x5 _3 S4 g$ }
- #include <epm/epm.h>
" e5 K9 f' o! Y# s - #include <tc/tc.h>
$ W4 p6 S4 H+ {/ L - #include <sa/tcfile.h>
5 T4 J5 M2 L! m9 o- O6 J - #include <itk/mem.h>+ r! @- N* f$ k8 y
6 \6 D! B3 z4 m- #define EXIT_FAILURE 1
) r6 f" m5 g3 M% p6 @3 a* I - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))9 @5 ?& ]! V- i# n- \/ W
- static void report_error( char *file, int line, char *function, int return_code)6 d8 K; o+ y+ A2 K# }
- {8 ]3 Z9 w0 g) p
- if (return_code != ITK_ok)
) v5 Z, F D" L' ~" o - {4 e7 A' t8 Y/ A/ P! w
- char *error_message_string;5 ^0 q' B' G2 ]0 T) k3 Z
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
( V3 e1 O: A+ r$ X* A - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
% {, B/ v7 {. r+ t4 q; C - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);* X, H3 }7 o: f* U7 w+ K% A
- if(error_message_string) MEM_free(error_message_string);- ^0 b! d* O& b
- printf("\nExiting program!\n");* K* E0 P9 K! @6 t
- exit (EXIT_FAILURE);
) [6 w& \/ p; | - }% V' F6 s! Q" T6 Y; r0 m
- }% V6 B! H4 L0 y# ~% U* L& w8 f
- $ o, Q' k! N. u- }+ A
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))7 N1 O- ]8 I, @1 j
- static void check_value( char *function, int value )
' @8 P2 D; v( w. P8 Z8 t& y - {
; m9 k3 v5 e0 T' n - if (value == 0)
! x% S- l/ e- Z! W& ~3 K - {; T3 K4 X1 B' Z3 w& T7 k: g
- printf ("\t%s is NULL\n", function);
, D2 D' D! j: T3 r - printf("\nExiting program!\n");
$ z$ _) E$ Q; i1 t* J2 _ - exit (EXIT_FAILURE);
8 j0 V7 d# e1 `* u - }
. f$ }& E- M5 Y; m- h) v- E - }
# `% U1 Q5 {7 D7 f8 `( i - 8 K" m, h- h" [9 j2 ^* H- j9 H1 L
( v( t; |/ B0 g- static void do_it(void)
! m% s Q, Q6 T% }- Z- Q( T, g - {' u+ h. B* }% z" B0 A
- int 2 b( ^! ^4 W" w& X+ ?8 E
- attach_types[1] = {1};
- i; V% b4 \" h2 y, m - tag_t % o0 `7 j- C( D& d3 w' m
- rev = NULLTAG, 5 p9 {' k! n5 ?& `8 B% B: Z
- process_template = NULLTAG,
4 y. B! c$ x, \8 L - process = NULLTAG;4 K+ |" z1 Y- n1 b# Q8 a" Q
d5 w |* F Z- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );% m* q' J3 q7 z7 i6 b( c
- EXIT_IF_NULL( rev );
$ e0 @% v, y6 q - - R3 i$ d; n2 J4 D" c/ a
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
3 e! z. J9 U9 ~8 F' s+ L7 v4 X - EXIT_IF_NULL( process_template );) r: q o& T% W8 ?
- ( n' F- X+ K9 W
- 9 H2 A7 [6 ?2 Z. c; q4 }
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, / ^8 a' |% Z# P/ X, V. t. P
- attach_types, &process) );$ R' E: O7 o0 z
& M7 o/ p4 P6 E( K5 F* k( i+ l0 R- EXIT_IF_NULL( process );/ a9 p7 K+ y$ H, _- e
- }
1 A1 g9 |( k$ U' u8 I o' a
& G0 P& b" a5 e9 \0 s/ ?9 S- int ITK_user_main(int argc, char* argv[])* D4 Z1 Z4 j) y6 V' ~
- {
+ c4 K3 @ w, b, G. c% r6 e - int( z7 \! o% K/ @5 Z! X$ I$ R, {
- status = 0;
) H6 u: @5 S1 o. Q0 w0 I& t - ; U/ p- a* Y% x6 f7 V1 B
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
3 }! l2 J; N4 Y$ E6 v0 A - status = ITK_auto_login();
# Y8 R1 |! d" c* E5 A' J, S - " F7 g+ T$ L& X4 K% [2 G
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
: m6 m' j) U6 j+ s P/ j3 q5 ]% c - else
, P4 x+ _0 Q/ d/ }8 s* g, o - {: w% S0 d& x9 v, b9 T) J
- printf("\nLogin successful!\n\n");
3 }/ S) z! Y* X/ z5 ~. \ - ITK_set_journalling(TRUE);
3 T- l. O5 r& u* f ]# m1 L0 b - do_it();
- w( x' \3 U: k - }
, \ x, d0 o! P- @! H' Q+ K8 t* T - ITK_exit_module(TRUE);
. K# [' W7 z4 i0 ^/ U8 e7 _, d- I - return status;9 I8 F* p7 A( }! `6 O
- }
复制代码
- v, Q) v5 i2 }" Q# L! L2 G: b0 @; T/ I3 W8 o, X& N
9 Z- z2 Z9 |+ N, [. T' p2 U
|
|