|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
9 h' X3 d2 c4 S0 x- x8 T \5 L
Teamcenter ITK二次开发源码分享: 创建一个工作流
; p4 k1 { n, @
* }- k( b) O' I+ U3 z- /*HEAD CREATE_A_PROCESS CCC ITK */
1 p! v) v& a& \6 O4 {( | u- S - #include <stdlib.h>
( C) {' n) T5 ~( q p; G - #include <TCcore/aom.h>% B- G2 V: G1 l* a; D/ Z& N
- #include <tc/emh.h>5 R! H# N; {3 b" B8 Q: A
- #include <epm/epm.h>
5 T( G" ? M1 t/ R$ N4 h2 K - #include <tc/tc.h>0 L( p- r# C* K& }0 f9 M9 z- {
- #include <sa/tcfile.h>7 l, @! q5 }& s3 T* Z- ?
- #include <itk/mem.h>$ _; s: x" x# v) P( r. Q+ ~! p* {
- ! Z' f- ~5 s( T6 `; V
- #define EXIT_FAILURE 1
: D- H# J. x( {4 T3 i* G; O6 b - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
5 }8 x4 h; p$ k6 t# ~" `+ R: _ - static void report_error( char *file, int line, char *function, int return_code)+ O& E4 `+ R: n: l. P
- {. B5 G4 ^) J" p
- if (return_code != ITK_ok)* i0 G; w: S7 d/ ^
- {
- M. X4 L: W k. r1 a- ? k - char *error_message_string;) o1 p: m! N" J7 R4 b& L" u2 F
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
4 k/ e& V9 T7 d7 E - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);: H% N4 c' Y5 C& q5 [; o8 G! p
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
" s8 [# _7 p* i/ b! ?& ~ - if(error_message_string) MEM_free(error_message_string);
' H" y& ~& B1 a/ @" {' z/ q - printf("\nExiting program!\n");# o2 p2 w( {& p
- exit (EXIT_FAILURE);
3 S/ U' R% u- I& o5 ]( M - }
# }! C2 T `) ^% P) @6 T% I - }6 a) R/ c# R9 C% J [: y) I: m
% I# k) _; m2 D5 N- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
! K9 U% m" S+ c, S) \) H- W4 k: ~ - static void check_value( char *function, int value )
$ c4 G) Y2 y. ^* J. m - {0 t1 m8 a1 e6 W
- if (value == 0)% ^% M9 O; r6 T
- {1 q( ^) R' ]# @
- printf ("\t%s is NULL\n", function);
- K8 O$ G* P1 g& v2 b& R - printf("\nExiting program!\n");; @/ r+ B |9 U
- exit (EXIT_FAILURE); / ]0 T8 O, F- U; K9 u
- }4 h7 U+ X7 H% b4 f# @7 A$ s
- }
% C* a& K. e& u, v3 I0 c9 _! c
2 x9 v: `2 Y0 i+ G0 @6 w- , ]. h, ~2 ^6 f* ^3 t
- static void do_it(void)
$ A& y) S5 A# [+ o - {
5 H+ a$ I; W1 W2 z- y8 b9 S - int
0 F9 O( i! k! g - attach_types[1] = {1};; Z3 t1 P( G" E& H
- tag_t ! h, I8 `1 P# j' H
- rev = NULLTAG, 2 s1 @2 i, H8 ] h( s; I) C
- process_template = NULLTAG,
# m4 K" J" A2 y5 t0 `6 t- F - process = NULLTAG;" F D0 p/ q/ e6 |- l! L' X
- ' e+ ?5 g4 J6 q3 e0 T( C) s+ R
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
" A: s' f" e! |* m$ f) m; u j6 H - EXIT_IF_NULL( rev );
4 s, s5 T8 W3 X9 i) V: W - ) d, O# s+ Y. q+ S9 \6 C( L
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
* K( H- @' X; z+ Q( v+ x4 x( _ - EXIT_IF_NULL( process_template );2 @$ R0 z' g3 ^; p# z/ [4 M
6 Z7 G, M# l6 O7 x$ F- ' A7 i' M' s8 ~4 e6 P
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
+ u- u* |8 I2 P& Y3 x$ r - attach_types, &process) );: E$ w* {) I& |( b
. ]( l# v k- d/ ~9 g% `& t- EXIT_IF_NULL( process );$ U- `& w8 h l8 C R+ R
- }
* d! V8 j' ^' `1 O2 K# c3 x
" O7 {. H% @- t0 \& D- int ITK_user_main(int argc, char* argv[])
# P/ I( L9 k8 L+ @# q8 A - {" ~" ~9 L8 L/ u4 `) B; z
- int
' B* K" I# U1 M. \ - status = 0; : m, T, i7 X2 \, m" n* ?& y( |/ L; D, a
-
* i2 o! W9 b2 [1 B) v% R - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
' l, a9 U% A) @' I - status = ITK_auto_login();
! q0 J* q) {- @( R1 O - / l6 O4 R, t, H, Q1 R
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
I* W0 z! Z9 P! b" i - else8 v' e# j2 Y# x+ U* J
- {7 M# ?/ J/ K4 S: O1 e
- printf("\nLogin successful!\n\n");
8 T' R0 j) V) C+ ~ - ITK_set_journalling(TRUE);
8 L% Q/ `: Y0 J3 \+ w e - do_it();
1 N6 r" d5 n0 q% \( O2 j - }
4 s- [' _% [3 j3 J. F - ITK_exit_module(TRUE);
+ B5 E. ^6 A& J - return status;3 W4 Z( `) t9 C' \8 ~8 G
- }
复制代码
, b# O1 t$ m8 k" g* S) t S- V- x
4 w' S* [: C2 p M: Z- Y' G |
|