|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 y% ^1 c/ J8 Q. P0 ITeamcenter ITK二次开发源码分享: 创建一个工作流
: N% j/ P6 x5 K- K* Q$ N$ K- {" l( S) v8 w
- /*HEAD CREATE_A_PROCESS CCC ITK */
) L8 N9 e, V; g. i6 ] - #include <stdlib.h>
& w4 Z! v6 G: u: d - #include <TCcore/aom.h>9 e6 f( Q- @+ F* v! |' G( H
- #include <tc/emh.h>/ w- Y1 n1 Z, E* t% Y' {. \
- #include <epm/epm.h>
% h, n0 \: z$ d. V& f4 d - #include <tc/tc.h> j X* o) F' ]& W; S! B, i
- #include <sa/tcfile.h>
* W$ T7 M3 [0 |% l% `6 t8 p5 m$ f - #include <itk/mem.h>
$ T& y8 T- ~5 j9 F& P$ j6 K- F - 0 ^# t- |3 P, P
- #define EXIT_FAILURE 1
! V/ K: r+ }; f' {! U7 K2 v - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))% S6 |2 K( b# ]2 K3 b* w
- static void report_error( char *file, int line, char *function, int return_code)
4 E2 A/ w2 `" \2 E' `; x8 A - {
2 K. x% ^/ i5 C: P - if (return_code != ITK_ok)2 O& x' z# W+ q1 [/ w5 J% {
- {: X% o+ u6 q; t* L
- char *error_message_string;
3 `8 w9 A; X2 M& O# q - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
D5 f. Y$ ~* [ - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
& A L I$ F( K7 r - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- y( z/ k& V( `) ^
- if(error_message_string) MEM_free(error_message_string);2 s% ~4 K% r" r! h) c
- printf("\nExiting program!\n");
4 z. m; B- A" S5 i - exit (EXIT_FAILURE);
1 S S5 @$ B/ E& ^. G% W - }: W& V; Z) Q7 d9 }
- }: X/ t" d: l6 I, ^% n+ W0 f
9 h$ R+ C- v& E% Z* o- #define EXIT_IF_NULL(X) (check_value(#X, (X)))& @" I. k5 P" |& e K
- static void check_value( char *function, int value )5 j3 _! s2 [$ ^$ s$ W6 o
- {' y- O3 V% b) Q9 [: n2 p
- if (value == 0)
. U" M6 b5 k# L4 i! O, F - {
! h; o4 V1 {- P$ V3 y+ r! Y- N: J - printf ("\t%s is NULL\n", function);1 d9 ] r; O1 g: Y2 M7 h0 R2 b
- printf("\nExiting program!\n");
# m1 W2 D+ T+ w- B3 i q q - exit (EXIT_FAILURE); 5 {% t+ _6 V' z) r# g. A" K
- }3 G; d d( Q5 n& I7 m. U% e# }
- }
$ v* U5 F4 F. |" a
4 j) m6 d" G% Y- ) O) |/ O% [9 ]% K7 b$ G2 T
- static void do_it(void)
, B5 B$ U# C, K( d - {1 v. g; ^" N) W; ^4 j+ W
- int $ s6 i6 |$ @3 {# y6 H1 @. b F
- attach_types[1] = {1};
7 t' d* g V, u0 W7 l; r( H1 E - tag_t 3 W/ R Q% F5 @( F
- rev = NULLTAG,
$ `; ~2 F" _$ B b - process_template = NULLTAG,
/ m" ~7 d7 n$ M1 E8 _ - process = NULLTAG;
- E' A: Y, y. |0 H) {6 E
+ v- r- u! t2 h% \: r5 S/ I, ~- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
% O! a8 `* y- j. m7 W! n$ r* [$ B+ F - EXIT_IF_NULL( rev );( c# M5 m. Y2 D5 e3 Z1 L f+ k
, `/ O6 \. y0 L& b: R! q- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ( _- i3 ?, C. R% o5 w. X, z6 N" T
- EXIT_IF_NULL( process_template );2 |9 c5 a- S) I; B: k8 j
0 C6 \& X3 p3 ^" D! t" `
4 o. p6 B- B' y* Z0 {+ i; F, M' z- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, # M' `: @8 C! `, Q& b* y3 H! m
- attach_types, &process) );2 p* Z8 P$ G/ Q8 O2 d$ n
9 Q8 m6 g" Y8 z; M( N7 c- EXIT_IF_NULL( process );
4 i3 D+ W) Z: E9 L; { - }( Y0 }3 Y9 `: p8 e5 I
2 p2 Y' e) r' }* `- int ITK_user_main(int argc, char* argv[])4 ^9 W1 b8 w8 V& c+ Q! F
- {2 _( |$ J+ _# O& V
- int: U+ b4 y) S! e2 f; E
- status = 0; # ?- P C; E6 x# Z5 L
- , d( h+ ]7 P8 O3 _! w
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
3 ?, Z, g! ?- Y0 J7 p( @ - status = ITK_auto_login();3 u& A, X6 _1 W# P! W8 a3 q! g' I
-
) F$ T3 R: I. ?1 S3 l - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n"); Y. m3 P3 Q* A7 R
- else
+ M: l5 m6 Q: s' V! } - {
/ v3 i* R& N* L4 r - printf("\nLogin successful!\n\n");
6 B* g" O5 J% G) j - ITK_set_journalling(TRUE);
% F R+ }" Y7 c( Y' Q% W- f& }3 @ - do_it();
9 ~) b8 a7 q6 N" @1 o - }( c( V/ \: \& ^' t
- ITK_exit_module(TRUE);
0 |4 e! p5 b! ]7 n - return status;
% A! L) a) T3 k - }
复制代码
! f$ y* p/ j7 U: r( P
; N& w9 E0 I) `. C# [
3 u) r. j, V4 ^0 j |
|