|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
1 o7 D- E8 z. `! A5 C5 B! @Teamcenter ITK二次开发源码分享: 创建一个工作流
+ f/ a2 K! B6 h) @8 j% m5 q% T6 W! [: @, z( b
- /*HEAD CREATE_A_PROCESS CCC ITK */
: N- h, A- {2 i0 i3 K - #include <stdlib.h>0 J; E) P l9 L! B! a$ F% [
- #include <TCcore/aom.h>
5 K# c) Q6 G: v! L; G/ Z8 { - #include <tc/emh.h>
5 t; w. f* A( A4 k, N, g! Y - #include <epm/epm.h>. Y: P& H4 o* @ _+ n# P8 U* k
- #include <tc/tc.h>
6 l Z, o( t$ S; Z/ I; `/ g - #include <sa/tcfile.h>
5 Y# k- V ?: i0 \; C' P# ^ - #include <itk/mem.h>
# b4 r3 Z* H8 b+ s% t
* n, }! W6 \% L% ]& {) q2 @- #define EXIT_FAILURE 1
1 g" S3 A9 r$ M l" h - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
7 V& f7 W6 T: a - static void report_error( char *file, int line, char *function, int return_code)1 v6 R+ n, P6 q& G' w
- {
' S1 N Z* U) Q& C( x6 ? - if (return_code != ITK_ok)6 v8 _( g* X. W6 s |* k0 z
- {7 S: J& r/ n& _. v
- char *error_message_string;
' ?! o9 ?& @& c4 U' J' y; i - EMH_get_error_string (NULLTAG, return_code, &error_message_string);* ?; A" Y0 X: B/ V" W j0 a
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
9 t+ K; E+ F( m3 B( ?2 `% Y+ X - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);# k! k' o& o8 b+ N2 j" N
- if(error_message_string) MEM_free(error_message_string);; {; w& t" C8 G6 Q7 ]! i- k
- printf("\nExiting program!\n");+ `" ^8 I% p3 u1 B a
- exit (EXIT_FAILURE);
0 Q) [0 U9 w U6 Z! I8 ^+ F - }
# p* P( e% l( { - }1 [/ n: t' t7 j
?, j/ y/ S4 K, t3 y4 F6 H- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
$ Y: z& K$ H k* X - static void check_value( char *function, int value )
9 C4 K& Y# ]: R. _' |6 E - {
: m- k! G5 W# S5 D4 U: R - if (value == 0)
6 z! X4 L5 k g - {' N9 x d7 c1 P9 _1 t
- printf ("\t%s is NULL\n", function);; E+ R" c8 |% h, V- \ E
- printf("\nExiting program!\n");7 y& E4 T) S) y8 \
- exit (EXIT_FAILURE); $ c; `8 Y( @/ @! V# p' u8 B! v, a% P
- }
2 n$ [* Y9 o; e' ^% r6 ` - }
! r( H) `+ ~; u7 {; Y, S - 3 F; ~. ]# Y' W! c, S7 D& X
- ' @% {* f. J/ m5 ?7 s
- static void do_it(void)
1 n; N4 n! P& u( E I, m - {
6 y( Q! q6 l# {" } - int
& W7 N, L' x& h0 `* n; `. y2 L( E - attach_types[1] = {1};
7 e; g5 F, i* ^5 v) H - tag_t : e: J0 U8 |( p0 g- I3 Q2 W
- rev = NULLTAG,
* D1 n% r; f$ Q! r) l) w/ p - process_template = NULLTAG,
( _0 ?& r/ Y$ h: Z( B0 n& `' ^, y - process = NULLTAG;* f- t4 P- D" T8 D7 W
- $ R3 t; E( d% V, z2 h
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
: Q! z/ ]& z7 [9 }4 x3 o9 L* } - EXIT_IF_NULL( rev );
1 t5 U/ z8 c; M7 _- M+ ]. w" s* f
0 g d* I8 c3 t: h/ D# Y- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
# R+ D, |2 q+ n0 ? - EXIT_IF_NULL( process_template );
4 H, B2 b+ n( b5 v) g
/ n; d4 ^# Q! e+ z
( j/ T3 _1 D' M: `- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
( w: T9 r- Y: E" |$ m - attach_types, &process) );
- _$ |/ u* F1 k d
/ v" W* O! S* C; N1 W& U, E* \- EXIT_IF_NULL( process );0 S/ ~6 `9 [1 D5 ^
- }5 F, X+ N* z9 ?3 n
- $ `/ o8 w1 i; ^7 K1 X9 h9 c
- int ITK_user_main(int argc, char* argv[])
% ^3 ?* q' O. R: r! B - {
7 e. x5 w( j" w) [* L - int+ O: y# L, ?1 q1 |' F. L4 z& j
- status = 0; + r( r) p# T1 C$ o; c! {' ]
- 0 ?" {( c9 s% m9 M# E
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );$ n) w4 Z- d% v R, r" L0 F
- status = ITK_auto_login();
. f( k R' q8 a) g6 Y7 U4 B - 3 j3 G, e- G4 h' \/ w4 e
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
9 \* @! K3 V' _/ s) V) C - else
- d+ @0 B) s, Y v: @- x% N - {
( S ]3 b3 ~0 x1 J% a - printf("\nLogin successful!\n\n");: b0 R- S$ m: c
- ITK_set_journalling(TRUE);" ]' ?3 h4 M. l) i6 I7 M
- do_it();& e: ]9 M5 |4 e1 O* u4 B6 L7 P- y' l
- }
* ^! ^8 g4 @( _3 C' q - ITK_exit_module(TRUE);
1 g& R+ l' e6 |. i2 e* g* X - return status;/ Y" Z2 G( X' J
- }
复制代码
' P" t- y/ P, H- i z J8 g9 J* o+ {& f5 s3 z% K
/ O# N1 g2 O! L; D |
|