|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. Q/ x) u$ j5 n) i
Teamcenter ITK二次开发源码分享: 创建一个工作流& C3 i- K+ L3 m+ e3 B
R N% i$ `+ c8 n2 t: a. B
- /*HEAD CREATE_A_PROCESS CCC ITK */: c" D- l- B8 T) r& v. r
- #include <stdlib.h>
; w7 ` Z* e- W! o6 n - #include <TCcore/aom.h>2 L* @ c/ G/ D. M$ ~' U k
- #include <tc/emh.h>
; \6 |' O7 d1 ~ - #include <epm/epm.h>
+ \: U- R" @) c- P% p - #include <tc/tc.h>/ Z% j: y7 n- [5 v( Q$ F5 O
- #include <sa/tcfile.h>- z" ~) l+ j7 T0 U, v' ~7 A) T
- #include <itk/mem.h>2 k) Q8 d [& I! b' G9 E
- " S4 i" d9 _- T. w9 C
- #define EXIT_FAILURE 1
, g2 |( l; P# R' w" Q& ~8 g- R - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
. D0 k; n* Q* D - static void report_error( char *file, int line, char *function, int return_code)% n) {+ \$ `+ G$ m
- {3 `, N0 p/ V* G5 g9 W; L
- if (return_code != ITK_ok)0 V0 C& { `, `5 r+ d
- {4 s" x2 h0 b* ?" g
- char *error_message_string;
3 u) b6 X! G* m% I - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
* C; X' X, }! w& H% S, G; i - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);/ c; h3 `6 P4 ~9 @" B2 [
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
" ~0 n& s. |, m6 k% k4 R% v! z- C - if(error_message_string) MEM_free(error_message_string);
: Z# h- ]0 E7 U( x' }% u - printf("\nExiting program!\n");4 J3 _' d$ w3 i/ o8 m" J; t9 ^
- exit (EXIT_FAILURE);
6 N. s$ D% ]& b* e - }
6 M5 m+ `1 Z/ z; D4 A0 l6 L - }: q: X# H! n" W0 z& X! P
' x1 m; s8 }) m% Z) @# s- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
) Q7 B0 \; z; x. B' ^ - static void check_value( char *function, int value )
& u1 l' ^- M' }; O" u, h6 n& Q - {
1 w$ A, J, {' y: L g$ _# F - if (value == 0)
4 \3 |% s( ~9 p6 A - {# Z) y5 b# }) B" A$ e2 U
- printf ("\t%s is NULL\n", function);* G$ c' i, \6 `" s1 u
- printf("\nExiting program!\n");
# c8 b6 I% t2 R - exit (EXIT_FAILURE);
" g/ ^7 G7 N7 w: @3 _/ A+ y& j0 Z - }- ~5 s. a* P3 Z$ Q' t, V( ~! e
- }
' x( P* t( q; D2 `/ E - + B0 D/ P( ]: h
- " O* F/ s1 _- b$ w6 W; ?4 B: S
- static void do_it(void)
4 V2 h) ` U% I g$ n - {) n: X! s9 |; m* F
- int i# F+ ]; O `1 U) L' Q/ t
- attach_types[1] = {1};
: o1 F+ h, ?8 U" t - tag_t
/ j+ @$ C% I/ X8 X7 O# C6 R- x - rev = NULLTAG,
3 d7 [9 o- Q! f2 \# n3 s T4 l - process_template = NULLTAG, $ p0 D* C3 P$ E5 A3 s
- process = NULLTAG;; N( g/ D3 K0 ?" e/ ^
7 ?) L) R9 g( B' Q3 i' w5 ~ u- J# x- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );4 Q% g. p: ]5 l2 t! D1 y4 v" c3 a9 D
- EXIT_IF_NULL( rev );
% b2 f' Z; ?2 h) G - ) V, x1 d2 N3 y
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , P& R# n! n% N6 q5 e4 x
- EXIT_IF_NULL( process_template );& c# X/ _- b4 H8 S3 K
! y! Y b6 I! P/ n, f7 w& I! A0 m; y- , G+ k! |( g. S+ l) d8 i
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
2 H) J5 L6 J0 j# G5 P$ s - attach_types, &process) );, K* r3 ~/ ]! Q# w+ m
. r5 S+ |5 j% [) `5 X! r- EXIT_IF_NULL( process );5 d! M- T& |% j' ~1 }
- }
2 F$ R8 H" v- ^! g! n& h
/ o! }+ l8 O a- int ITK_user_main(int argc, char* argv[])4 z b4 L0 ?, o1 J# H3 c/ E
- {
" O/ S/ s: p. k% i5 ] H& J - int
0 M. z4 W5 Q. L8 a - status = 0;
/ w8 e" k' T* a - - r+ E2 I! {3 P, L
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );: ]+ [, h8 O7 _' n6 K% K0 v
- status = ITK_auto_login();+ A+ b L1 P2 Y: K3 i% `: ~/ U
-
6 N9 V C5 z% S6 y - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");" p( o7 @4 |. j2 @
- else4 r7 i. B I) q5 W! g
- {
7 I2 J6 T2 K" F2 W+ x - printf("\nLogin successful!\n\n");' D* _% Z% g4 c0 @5 \
- ITK_set_journalling(TRUE);
! ]* D [3 A% u5 O& j - do_it();
! G; O) B" z |( S/ I - }+ n# `) f6 ~& i6 c+ ]* c
- ITK_exit_module(TRUE);
% T" B/ Q z% h# `1 K8 e' V R6 m - return status;5 p6 }$ P A6 V
- }
复制代码 & S: r4 H8 E4 B9 S, I3 w2 a0 P
7 W4 v+ M; |6 u( M
L* c0 | u3 R
|
|