|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, p& O0 j' v2 Q- G: @9 ~( eTeamcenter ITK二次开发源码分享: 创建一个工作流' y* @0 y0 ?$ j
$ @0 y. F) B5 `; E- /*HEAD CREATE_A_PROCESS CCC ITK */
6 l' [/ f9 m$ Q6 R% ~% |0 s0 u, q - #include <stdlib.h>. |2 p4 c- M2 l' F3 U* T
- #include <TCcore/aom.h>& E5 z0 Z6 ^* M
- #include <tc/emh.h>, _ _/ v" W. \7 i0 G
- #include <epm/epm.h>
" l, X- U, Q5 R - #include <tc/tc.h>
m% L3 X/ I2 S% Y1 _ - #include <sa/tcfile.h>; }( y* U# N/ k: V x- d- D8 V4 e# }, {
- #include <itk/mem.h>; f1 A" I5 U' |. A
- 0 G! W8 {- R/ J3 }
- #define EXIT_FAILURE 1 N0 V3 J1 f) Z; J/ R
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
: c6 h* c' F% g0 R2 m7 A% X, ] - static void report_error( char *file, int line, char *function, int return_code)
6 J3 q+ W" e4 C6 B- D+ @ - {
! w/ l$ D" F8 K) x2 r T1 F( S8 ]; V; H - if (return_code != ITK_ok)) ^7 c( b, `+ T7 T/ _* {- o
- {! h3 l" y* @% |# @/ r: W
- char *error_message_string;
4 x% L0 _, Y( }2 r - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
3 S: W R+ c1 T, t, t - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);7 i# A' X$ J- F
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
; e. g8 f! j+ a - if(error_message_string) MEM_free(error_message_string);) e+ C* F) m# ~: d* t
- printf("\nExiting program!\n");( n# C1 C3 U/ k% L, F, g- |) A
- exit (EXIT_FAILURE);
" z% X: |7 i+ ~: g/ W - }
! a7 j+ P- W! V7 T0 _: r - }
* \. J8 A0 ?+ R: C: i7 ? - 0 L7 b0 i8 `' j% N
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))- T. T2 Q4 b1 W( b
- static void check_value( char *function, int value )+ h: H, _; _ T$ [
- {: e5 C; p" A( R) p, x
- if (value == 0)/ E0 a I( g ]! K8 e4 n4 _3 z
- {
, P% Q, O: L1 A0 P' o i2 A - printf ("\t%s is NULL\n", function);/ h7 C) v2 `1 ?& L
- printf("\nExiting program!\n");$ P$ U" F/ x9 `% e
- exit (EXIT_FAILURE); 0 n' g4 i+ x3 W' c4 ]% U; {
- }
0 X/ s) @( G3 \$ L9 @# B - }) [% G) y; _' N! r2 I
- 6 r6 c+ z o A% T6 l5 h7 s. Z3 y
. p1 g+ @; | B, z- static void do_it(void)5 u# ]" v& t/ V. X# X4 F2 q6 ~
- {& g' d/ b9 _7 q' n h
- int
9 Z2 s! {+ f: P4 t$ L( I0 b - attach_types[1] = {1};$ g8 ?! r% f- a8 R
- tag_t * e$ H8 n4 x1 I
- rev = NULLTAG, % y5 O! |* r' F- G0 `6 d' G8 k9 }& f
- process_template = NULLTAG, . b0 ?2 M6 C; Y! ^. W1 a
- process = NULLTAG;% r3 E0 v- ]" v. |4 w% w
" T9 G( O! ^: e" N( T. s/ ^) W- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
7 Z4 Q- ]# y) X. M - EXIT_IF_NULL( rev );
$ b3 N9 H% s9 }. `+ |4 Q F* {+ I, O
1 i B8 [, O2 ] @9 D# S- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
, _( a4 g& z1 U% u' q+ N$ z. @ - EXIT_IF_NULL( process_template );' _; ]1 \) N U5 Q, J5 n! T5 N
% g; P1 c9 z2 {. _; D( r
/ V. v7 ^5 O2 n1 g* k) q6 J. z3 P- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
8 x: n. [0 k' |2 D; r6 m' X. f - attach_types, &process) );+ R! [% d/ C' v+ [
o# t7 y( Z; [2 J$ V0 o! H- EXIT_IF_NULL( process );6 a$ b$ c3 ~4 j' |2 [; S% y) ?7 b9 r
- }8 K& X7 C- r% h/ [4 x: q
- ; r b3 r$ O# I' ^
- int ITK_user_main(int argc, char* argv[])
( L! q: N: b: D% S: X: L0 y$ X - { E; ~/ u: E5 J6 G
- int
' c, X; b6 b6 E: o) L* v - status = 0;
/ u0 l! X) Q" ^7 z" G -
( A0 N: Z0 h9 y3 \8 l: o - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );+ }( |! z' r+ s6 Y, A1 f! J) a0 q
- status = ITK_auto_login();
/ J: J3 {6 X, R C" O- X! S- D - 4 h. W2 g. K# h/ x3 D
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");6 Q6 \1 K% b1 C) o0 |
- else) C# o7 s9 Z. I0 Z. x- j- Z) R
- {" ]! C- H$ s7 X# v) O( v0 f
- printf("\nLogin successful!\n\n"); `! ]$ n! D; H
- ITK_set_journalling(TRUE);
/ @5 {8 e: X: W( q: a - do_it();
/ i) k) g4 N" k; S1 ?6 Y \7 y8 t5 P& ` - }
/ [% P0 Z0 ?1 |' T4 w - ITK_exit_module(TRUE);/ t6 ]# j( }: _, y) }
- return status;( W1 @8 J# x v& y; |5 E
- }
复制代码
# p" l) K/ U. J) c6 M7 q/ m+ t M' Q j
9 p+ |! P6 `$ _) M2 J: p. v& r! i# m
|
|