|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 O7 F) Z% n0 Y8 J, n; Z# ` n5 dTeamcenter ITK二次开发源码分享: 创建一个工作流
4 _1 l$ X) N" }) {
0 k9 @0 y# t- R+ ?0 S& v8 p- /*HEAD CREATE_A_PROCESS CCC ITK */
, l& L# Q' g( w: F* w - #include <stdlib.h>4 G8 J& V1 U1 I; [5 p/ A# L
- #include <TCcore/aom.h>
. s. A# r3 J0 E7 ~9 ` - #include <tc/emh.h>" x7 ^* Z' X# {1 x
- #include <epm/epm.h>9 _% ]- X3 p9 y% L
- #include <tc/tc.h>: Q2 G5 C1 J) S& G2 T
- #include <sa/tcfile.h>2 j2 [+ _4 }" B- c w
- #include <itk/mem.h>
+ \5 I1 n* _ J- P( Z
& Q9 K0 t; J6 F9 v. i$ c- #define EXIT_FAILURE 1
" i X) `" d* S/ i1 s - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))! s+ n5 i! K2 I4 S: d# \% ^
- static void report_error( char *file, int line, char *function, int return_code)* U, L/ h8 u5 w" [& q7 y5 Z
- {" _8 p6 }' C! d8 b' x
- if (return_code != ITK_ok)
- R+ M9 s5 Y' m6 T) } - {# O2 h& w! d+ [+ x
- char *error_message_string;
2 r7 b p0 ~1 l - EMH_get_error_string (NULLTAG, return_code, &error_message_string);7 n: j3 |$ r3 A' W4 F& M% x
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
2 P6 N5 D: i' { - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
1 m, P& C2 F" `4 @. K( g - if(error_message_string) MEM_free(error_message_string);$ ?# a# g" X- m3 F: n) e
- printf("\nExiting program!\n");
5 h1 Z* y$ |& U - exit (EXIT_FAILURE);
3 H, T9 Y4 M2 Y/ j0 ?5 F - }1 u- u8 `5 B1 ~. r/ p/ |: p
- }' r8 K1 K% D8 e: C+ p# n0 y
0 W+ N6 c$ X3 a$ p* M- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
$ ]- K3 K; _" }7 I: o - static void check_value( char *function, int value )& m4 M. _0 N& a- ^$ t) n1 m9 V
- {# U" }: S. G/ m+ J' @
- if (value == 0)% I7 n1 c/ o# B9 X* z, a' V% G% D
- {
* L) [- N; }5 c9 p, R6 j6 O* D3 P9 _ - printf ("\t%s is NULL\n", function);
2 u' a9 S; i8 l) J$ J$ ~ - printf("\nExiting program!\n");
$ P: ~8 P2 Z. b6 C2 q' O7 d+ Q; ] - exit (EXIT_FAILURE); ; ?/ Y$ m( a% ]+ X
- }1 q0 ]# v4 t9 m, U: A
- }; @6 k# H0 l+ }) w: U1 Y
b7 |: S# S0 ?, ^& F3 t' r- ' G2 _5 c/ q& ^, k* M- T
- static void do_it(void)
& X" x1 u) r8 g, `/ N8 S1 l - {
v& D8 f1 h1 Q# M" I8 e( K i3 {. d - int ( s% j$ D2 O- v# c: y7 r( ~
- attach_types[1] = {1};+ A Q6 H: {: J3 D
- tag_t
B Y: q3 V, e0 q+ { - rev = NULLTAG,
. }; y; a4 ~. ^$ r - process_template = NULLTAG, - \5 T+ h b4 k$ { A
- process = NULLTAG;
: T7 Y5 e# E) o3 X5 L5 F4 E - , I( w3 v- F9 e, X$ {
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
+ y$ i# u6 R2 r! ] - EXIT_IF_NULL( rev );
x7 u4 Y' E+ {; Z9 w1 H3 x7 z" K# I! ?+ b- Z
' [* h( `2 d% z# o- ~- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
. L" l" u8 a: b) F, F3 ` - EXIT_IF_NULL( process_template );- R, _) B6 h; i( C+ q. e2 m
: L0 c- l/ P# d
# e" M/ }. G* B8 R0 u/ s# ]- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 ]1 N ]" ~, R! @5 b
- attach_types, &process) );
! S0 e2 |5 E& a6 G' I4 d - , ?$ t5 e9 L- I* `4 x! l7 M+ |
- EXIT_IF_NULL( process );2 U0 ] ~/ _ E. u4 J
- }
! J- F5 S, N, I( u7 u
3 D$ F3 J7 @8 ?: _% D, D( s- int ITK_user_main(int argc, char* argv[])
8 q6 e* y7 ]' q, S% A7 G; j - {
3 _' y v) W- M& l9 I- V - int
7 J# a5 r# E. J9 n* v - status = 0;
: w7 Z' ]/ a2 q0 L( R5 W6 C - 5 Y2 f% {% Z* M3 a- O
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );# L9 [) O& r4 \" _) |' ?. P4 C
- status = ITK_auto_login();7 h) i, J- `% i1 d3 w. a
-
4 A# t1 U/ g: z& b \. t - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");2 x7 r' b" U0 R: X I: h. z
- else
% i/ P# s2 a& I4 l1 Z2 Q - { P$ \" k% C* G$ _
- printf("\nLogin successful!\n\n");
; ~# r' P; c7 N8 L: Z - ITK_set_journalling(TRUE);1 u4 W1 _, o8 N* A3 Z9 \# N
- do_it();
2 F1 Y& [2 b R - }8 X. @, n, J0 m4 U' B. ?: n
- ITK_exit_module(TRUE);
2 y8 l" y$ C \1 k. Y - return status;
4 K4 z0 P Z$ W( Q - }
复制代码
+ }) P5 q, }6 i; z7 ^3 a3 A3 e% D8 y4 h' ~) U S
$ ]! W q3 } T; V7 o4 O |
|