|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 a; i$ u0 F6 `( g& J \Teamcenter ITK二次开发源码分享: 创建一个工作流
: X$ b' {8 J' r6 o- [9 e
) I9 C# C0 |2 \/ T- /*HEAD CREATE_A_PROCESS CCC ITK */) T. V2 r# Z* o, s8 W1 U% g
- #include <stdlib.h>
8 o8 x1 \, C9 z3 y, }2 m4 f - #include <TCcore/aom.h>
( D8 \: o5 B! M: g/ q! G. s - #include <tc/emh.h>: t9 o/ ~7 X" h7 W. f
- #include <epm/epm.h>/ I& I- P4 R; u! q/ i+ s' c
- #include <tc/tc.h>0 L" _% m/ l. L' `( P
- #include <sa/tcfile.h>
3 V+ f1 a6 A9 ]: ]7 M0 S - #include <itk/mem.h>
8 ]; e( L' n8 G5 S - + ^- r! f" |7 c* @; Q* V
- #define EXIT_FAILURE 1 ) P- [ L" I, z% L7 y l5 z4 e1 G
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
! ]; @/ Z5 G% O" h& n$ q - static void report_error( char *file, int line, char *function, int return_code)2 _3 i" Z I$ K' B. P8 L9 M
- {6 Z6 y3 W& l) G5 \4 D% a, k
- if (return_code != ITK_ok)
* _1 O( |: f' A9 b/ O - {
4 ?. g8 n; s7 ^5 G7 D a" x - char *error_message_string;8 \3 G1 q- y7 ?2 F4 Z( M
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
4 G0 o" v, k4 g! z: q - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
6 Q1 X2 X3 \! g T - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
" l C. M# X. A! @$ N) S - if(error_message_string) MEM_free(error_message_string);5 B' T. `% U: g
- printf("\nExiting program!\n");
' q) Y j3 s- P8 J o - exit (EXIT_FAILURE);
7 q# ~( W" d) a8 a) O - }4 A" S! Z% k e
- }: a% d2 @7 n' h5 c, V/ N
- 3 n2 |3 Y' _. X& v8 t
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
) {8 [* W# ~: m% | - static void check_value( char *function, int value )* v8 [( W$ @5 ~ S7 w
- {- m& B+ k# a Y
- if (value == 0)
6 i7 R! Y! ]3 R H1 p- H' ~9 t; Q9 [ - {3 ~5 @, z' }. Z) D3 k% x, g3 i
- printf ("\t%s is NULL\n", function);% h N- Q. c) D; Z/ X
- printf("\nExiting program!\n");
0 l0 {9 N% Y1 Z! d5 h - exit (EXIT_FAILURE); # ]3 `& j, r9 g# q7 ^5 ?
- }% Q8 H8 [. M! j; F% _- ?
- }
# {( B/ L, \9 [8 u* s
0 e0 \! H( U( J9 {& U/ f! ]
; S5 [4 ~8 [ O: c- static void do_it(void)! n5 w1 H2 {. }& M0 }$ n
- {
# ?, ]5 T) q& Y% U s8 o6 v - int $ }; {/ D" ?7 C! r0 J8 W
- attach_types[1] = {1};
. m! f5 v: a. G5 x7 X - tag_t
2 n4 b* D. v0 r# X: l0 h) k - rev = NULLTAG,
6 L3 S$ k R: o0 T5 o - process_template = NULLTAG,
0 G5 A; G" y( C( Q( `7 J: | - process = NULLTAG;, G6 v* [/ d: P& G2 a0 h
) m4 Q- ~$ J' f& ]- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
+ D. p8 D: {. z, X. u- I) v! _ - EXIT_IF_NULL( rev );
% r% r, T E" @
0 ?% a7 x" g' c4 @$ B3 I7 W" V- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
/ S) R2 o2 w2 F9 I - EXIT_IF_NULL( process_template );
$ V" P. P5 A- n1 @8 [9 q
' e! i- D. S# o- |5 _* u- % A; _$ g) r+ z
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, % A# W* V5 ?' }* q: B. F
- attach_types, &process) );/ g9 r; d% Q3 g1 K" Y
2 m/ ^6 c6 x' i0 x I1 F$ p1 F# f- EXIT_IF_NULL( process );/ U5 O! T2 s0 j
- }- Z9 B5 I @7 G2 j9 _" C$ q2 r
1 I& Y$ O# M1 |! {- int ITK_user_main(int argc, char* argv[])
% e0 T' Y: O, p - {
% h8 J0 z! Z) S1 U - int* z7 z0 c& ?' A0 ^5 S! k f- O9 `
- status = 0;
- z1 ^' ]7 j" c. M$ r6 E5 \ - " H2 _/ F7 M7 _7 B6 y( N/ W+ @: t) u
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
) e0 j6 A1 y' ]( G9 C$ ]5 v - status = ITK_auto_login();6 S% `$ _* A" t) }3 q0 _9 }. g b
-
. @: g- B" `1 @# R7 M' ^- M - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");0 O1 f& ?6 s3 h6 }5 }
- else; @7 @% u0 r: b- W, |/ Q( T* G
- {
- U) K( T* p+ w9 P- X! E - printf("\nLogin successful!\n\n");
( w! U7 |! ~1 x0 ]6 m - ITK_set_journalling(TRUE);* m4 O8 E, w; k$ s7 G, r5 Q/ [0 a
- do_it(); N5 C9 `' C2 u. V
- }
. Z6 n. }1 p+ q - ITK_exit_module(TRUE);
6 z* ?" {4 Q2 W0 [ K - return status;6 Z3 V' M2 q; }7 F* K8 g
- }
复制代码 3 u( m" l8 R2 c9 L/ U! B- g
$ D" f6 ^' G/ G1 e
8 ?! }- K) ]. p& A$ V" { |
|